Django Tutorial 실습 따라하기
Django에서 Admin Page에 어떻게 접속할 수 있는지 알아보겠다. 일단 Admin Page를 url로 접속해보면 다음과 같은 로그인 화면이 나타난다.
하지만 아직 사용자를 만들지 않았기 때문에 로그인이 불가능하다.python manage.py createsuperuser
로 superuser를 생성하자. 하지만 django.db.utils.OperationalError: no such table: auth_user
라는 에러가 발생한다. 그 이유는 말그대로 auth_user 테이블이 필요한데 우리는 그런 테이블을 아직 만들지 않았기 때문이다.
테이블을 만들기위해서는 migrations을 해주어야한다.
migrations는 데이터베이스의 스키마에 변화가 발생하면 그 변화를 감지하고 변화를 적용해준다. python manage.py makemigrations
를 하면 변화를 감지하고 django가 db를 업데이트할 준비를 하도록 한다. 하지만 우리는 아직 db를 바꾼적이 없으니 No changes detected라고 뜬다. 그 후에 python manage.py migrate
를 하면 auth_user 테이블이 생성되고 craetesuperuser
도 사용할 수 있게 된다.
makemigrations, migrate 두개가 비슷해보여서 헷갈렸는데 Flask에 비교해보니 이해가 되었다. makemigrations는 flask db migrate
와, migrate는 flask db upgrade
와 같은 역할을 수행한다. 하지만 Flask에서는 변화가 감지되지 않으면 migrate가 안되는데 여기서는 auth_user 테이블이 만들어져서 좀 혼란스럽다.
이제 다시 localhost:8000/admin/
에서 로그인을 하고 user탭에 들어가보면
생성한 supersuer를 확인할 수 있다.
이 admin페이지에서는 user들을 추가하거나 수정할 수 있다. 구체적으로 어떻게 쓰이는지는 나중에 알아보도록 하겠다.