(2024.06.29. 수정됨.)
블로그에 포스팅을 작성하기 위한 모델을 작성하기 전에, 사이트에 로그인할 수 있는 계정을 만들어야 합니다.
로그인을 하지 않아도 글을 작성할 수 있도록 설정하는 것이 가능하긴 하지만.. 블로그는 일단 "나만의 공간"이니까요.
마이그레이트하기
계정을 생성하기 전에 먼저 마이그레이트를 수행하여 db에 계정 정보를 저장할 수 있는 테이블을 만들어야 합니다.
장고 프로젝트 경로에서 "python manage.py migrate" 명령을 입력하면 장고에 db에 테이블을 생성합니다.
지금은 어떤 모델도 작성하지 않았기 때문에 장고에 기본으로 내장된 User Model을 위한 테이블만 생성됩니다.
# migrate
(python3.10) C:\seolpyo\python3.10\Django\blog>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
관리자 계정 생성하기
db에 테이블을 생성한 다음, "python manage.py createsuperuser" 명령을 입력하면 관리자(admin) 계정을 생성할 수 있습니다.
여기서 요구하는 정보는 Username(로그인 ID), Email(연락처), Password(로그인 비밀번호)입니다.
비밀번호의 경우 보안을 위한 것인지 어떤 키를 입력받더라도 아무런 표시가 나오지 않습니다.
그러나 입력은 제대로 되고 있기 때문에 비밀번호 입력 후 엔터 키를 입력하면 됩니다.
# 관리자 계정 생성 명령
(python3.10) C:\seolpyo\python3.10\Django\blog>python manage.py createsuperuser
# ID
Username (leave blank to use 'user1'): seolpyo
# 연락처(이메일)
Email address: seolpyo@seolpyo.com
# 비밀번호
Password:
# 비밀번호 확인
Password (again):
# 비밀번호가 너무 짧으면 나오는 경고 문구
This password is too short. It must contain at least 8 characters.
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
(python3.10) C:\seolpyo\python3.10\Django\blog>
로그인해보기
/admin/ url로 접근해보면 관리자 로그인 화면을 확인할 수 있습니다.
현재 호스팅 url은 127.0.0.1:8000이기 때문에 전체 url은 http://127.0.0.1:8000/admin/이 됩니다.

관리자 페이지는 사용하지 않을 예정입니다.
점프투장고에서 소개하는 것과 같이 관리자 페이지를 통해 게시물 작성, 작성된 게시물 관리 등의 작업이 가능합니다.
그러나 제가 목표로 하는 블로그는 티스토리나 네이버 블로그와 같이 게시물 작성 UI와 실제 보는 페이지 UI가 동일한 웹사이트입니다.
장고 관리자 페이지는 이런 목표와는 동떨어져 있기 때문에 당장은 사용할 계획은 없습니다.
다음은 위에 링크한 점프투장고 페이지에서 확인 가능한 관리자 페이지에서 게시물을 작성/편집하는 화면입니다.
실제로 사이트에 방문한 사람이 보는 사람과는 매우 동떨어져 있음을 알 수 있습니다.

이미지 출처 : 점프투장고
주요 파일 경로
blog
|- manage.py
이 글의 댓글 기능은 일부러 막아놓았습니다. 궁금한 내용이 있다면 게시판을 이용해주세요!