- 서버에 등록된 사용자만 접속이 가능한 페이지를 만든다고 가정한다.
- 처음 main 페이지로 로그인창을 사용하고 로그인 된 사용자만 접속이 가능하다.
- 그것을 위해 MVT 패턴의 Model - 데이터베이스가 필요하다.
Model & admin page
# models.py
class BbsUser(models.Model):
user_id = models.CharField(max_length= 50)
user_pwd = models.CharField(max_length=50)
user_name = models.CharField(max_length=50)
def __str__(self):
return self.user_id+"\t" + self.user_pwd + "\t" + self.user_name
# admin.py
admin.site.register(BbsUser)
- django에서 models를 통해 ORM을 사용할 수 있다.
- models에 데이터를 매핑시킬 class를 생성한다.
- class로 정의된 내용은 sql의 create 문과 같다고 생각할 수 있다.
- models에 클래스를 정의한 후, admin.py 에 해당 클래스를 등록시켜줘야 한다.
- str함수를 override 한 이유는 디버깅 할 때 편리성을 위해서이다.
- 이후 터미널에서 다음 문장의 실행이 필요하다.
> python manage.py makemigrations
> python manage.py migrate
- makemigrations 는 클래스를 테이블로 만들어주고, migrate는 만들어진 테이블을 반영시킨다.
- models의 클래스를 의도와 다르게 잘못 정의하면 골치아파진다고 한다. 주의!
- 터미널에 ok가 뜨면 된다 ! ok!
- 이제 관리자 계정을 추가해줘야 한다. 터미널에 다음 문장을 추가한다.
> python manage.py createsuperuser
- 이름(아이디), 이메일, 비밀번호를 차례로 입력해주면 된다.
- password는 정상적으로 입력되어도 창에 표시되지 않는다. 렉걸렸다고 생각하지말고 천천히 하나씩 제대로 넣는다.
- 그리고 서버를 구동시키면 127:0.0.1:8000/admin/ 으로 접속이 가능하다.
- 로그인 창에 방금 만든 아이디와 비밀번호를 입력하면 관리자로 접속할 수 있다.
- Bbs users로 정상적으로 데이터가 만들어진 것을 확인할 수 있다.
- 로그인창에서 사용할 목적으로 임의의 사용자데이터를 하나 추가한다. +Add 버튼을 눌러 추가할 수 있다.
- DBMS 에서 데이터를 저장할 테이블을 만드는 것은 장고에서 models 에 클래스를 정의하는 것과 같다.
- Makemigrations, Migrate를 통해 데이터 베이스와 클래스를 매핑(연결)시켜준다.
- 따라서, views에서 변수(객체)에 데이터를 담아낼 수 있다. DBMS에서 Select 해온 데이터를 변수에 저장하는것과 같다
- html 에서 post , get을 통해 넘겨받은 데이터를 데이터베이스에 저장할 수 있다. save() 함수인데, DBMS에서 update구문과 같다.
- 같은 방식에서 delete 도 이해할 수 있다. 로그인 페이지를 만들면서 이어간다.
'Study > django' 카테고리의 다른 글
django 기초 - bootstrap을 이용한 사이트 만들기 : 5. 로그아웃과 로그인세션 (0) | 2021.08.22 |
---|---|
django 기초 - bootstrap을 이용한 사이트 만들기 : 4. 가입 페이지 (0) | 2021.08.19 |
django 기초 - bootstrap을 이용한 사이트 만들기 : 3. 로그인 페이지 만들기 (0) | 2021.08.19 |
django 기초 - bootstrap을 이용한 사이트 만들기 : 1. 페이지 틀 구성하기 (0) | 2021.08.18 |
django 기초 - high chart 사용하기 (0) | 2021.08.17 |