[Django] Admin Page

rang-dev·2020년 6월 7일
0

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들을 추가하거나 수정할 수 있다. 구체적으로 어떻게 쓰이는지는 나중에 알아보도록 하겠다.

profile
지금 있는 곳에서, 내가 가진 것으로, 할 수 있는 일을 하기 🐢

0개의 댓글