ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Django User setting
    Project using python/Cloning Airbnb 2021. 2. 19. 16:08

    settings.py

    INSTALLED_APPS

      settings.py를 보면 INSTALLED_APPS가 있는 것을 확인할 수 있다. django는 framework다. framework라는 것은 우리가 따라야할 규칙들이 있다. 그러므로, 절대로 INSTALLED_APPS의 이름을 변경하면 안 된다. 만약 이름을 바꾼다면 django는 다음 배열에 있는 module을 찾지를 못 하여 우리는 django.contrib의 것들을 사용할 수가 없게 된다.

    settings.py

      우리가 django-admin startapp <app_name>으로 만들어준 app들도 INSTALLED_APPS에 추가해줘야 한다. 그렇지 않으면 django는 app이 설치되지 않았다고 error를 일으킨다. 그리고 앞으로 우리는 pipenv install을 통하여 python package module들을 설치할 것이다. 그럴 때마다 INSTALLED_APPS에 추가해줘야 한다. 그래서 기존에 있던 django apps, project apps와 third party apps을 구분해서 INSTALLED_APPS에 저장할 것이다. settings.py에서 INSTALLED_APPS를 다음과 같이 바꿔주자. PROJECT_APPS는 우리가 설치한 app이고 THIRD_PARTY_APPS는 앞으로 우리가 설치할 모듈들이 저장될 것이다.

    AUTH_USER_MDOEL

      settings.py에 AUTH_USER_MODEL = "users.User"을 추가하자. django 자체에는 사용자를 인증하는 기능이 기본적으로 있다. settings.py에 다음과 같이 설정을 해줌으로써 우리가 생성한 app인 users에 models.py에 있는 User라는 class를 참조하도록 한다. 즉 users/models.User에서 만드는 model은 인증 기능을 가진다.

     

    settings.py

    users/models.py에는 AbstractUser를 상속하는 User라는 class를 만들어준다. 

    users/models.py

    Make Migration

      새로운 model을 생성할 때마다 $python manage.py makemigrations와 $python manage.py migrate를 해줘서 migration을 생성해줘야 한다. 그래야 db가 생성된다.

    Create Superuser

    admin page에 들어가기 위해 super user를 생성해보자. 명령어는 $ python manage.py createsuperuser다.

    Run Server

    $ python manager.py runserver

      위 명령어로 server를 실행한다. 그러면 127.0.0.1:8000 페이지에 접속할 수 있다. 여기서 /admin으로 들어가서 본인이 생성한 계정으로 로그인을 한다.

    admin login

    성공적으로 admin page에 접속한 것을 알 수 있다.

    admin page

    참고 자료

    • 노마드 코더의 Airbnb 클론 강의

    소스 코드

    github.com/zpskek/airbnb-clone-v3/commit/1b2683b67bc23eba84ab79b26b7d08316a2fcd97

    'Project using python > Cloning Airbnb' 카테고리의 다른 글

    Django commands  (0) 2021.02.20
    Create User Model and Admin Panel  (0) 2021.02.19
    Create Django Apps  (0) 2021.02.19
    Django settup  (0) 2021.02.19
    Django 설치  (0) 2021.02.19

    댓글

Designed by Tistory.