이번 포스팅에서는 장고의 기본 요소 중 하나인 장고 관리자에 대하여 공부를 해보고자 한다.
슈퍼유저(SuperUser)
장고 관리자를 사용하기 위해서는 장고 관리자 화면에 접속할 수 있는 슈퍼유저(superuser)를 먼저 생성해야 한다.
python manage.py createsuperuser 명령으로 슈퍼유저를 생성한다.
(mysite) c:\projects\mysite> python manage.py createsuperuser
사용자 이름 (leave blank to use 'pahke'): admin
이메일 주소: admin@mysite.com
Password:
Password (again):
비밀번호가 너무 짧습니다. 최소 8 문자를 포함해야 합니다.
비밀번호가 너무 일상적인 단어입니다.
비밀번호가 전부 숫자로 되어 있습니다.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
[슈퍼유저 생성 정보 예시]
항목 | 값 |
사용자 이름 | admin |
이메일 주소 | admin@mysite.com |
Password | 1111 |
비밀번호를 "1111"로 설정하면 비밀번호 관련한 경고가 3개나 출력이 된다.
하지만 y를 입력하여 그대로 진행할 수 있다.
실제 운영 환경에서는 이렇게 보안에 취약한 비밀번호를 사용하면 안 된다.
장고 관리자 화면
로컬 서버를 구동한 후 http://localhost:8000/admin/ 페이지에 접속하면 다음과 같은 화면이 출력된다.
사용자 이름에 "admin" 비밀번호에 "1111"을 입력하고 로그인 버튼을 클릭하면 다음과 같은 관리자 화면이 나타난다.
모델 관리
기존에 만든 Question 모델을 관리자에 등록한다.
앱 디렉터리에 admin.py 파일을 다음처럼 수정한다.
[파일명: projects/mysite/pybo/admin.py]
from django.contrib import admin
from .models import Question
admin.site.register(Question)
admin.site.register로 Question 모델을 등록했다.
그리고 장고 관리자 화면을 갱신해 보면 다음처럼 Question이 추가되었다.
이제 장고 관리자 화면에서 Question 모델을 관리할 수 있다.
신규 질문을 생성할 수 있고 조회, 수정, 삭제도 가능하다.
위 화면에서 Question 모델의 "+ 추가" 링크를 클릭하면 Question을 신규로 생성할 수 있는 화면이 나타난다.
입력 항목들에 데이터를 채우고 "저장" 버튼을 클릭한다.
날짜와 시각은 "오늘"과 "현재"를 클릭하면 자동 입력된다.
그러면 다음처럼 Question 데이터가 추가된다.
Answer 모델도 동일한 방법으로 등록하면 Question 모델과 마찬가지로 장고 관리자에서 사용할 수 있다.
모델 검색
관리자 화면에서 제목(subject)으로 질문 데이터를 검색하는 경우, pybo/admin.py 파일을 수정한다.
[파일명: projects/mysite/pybo/admin.py]
from django.contrib import admin
from .models import Question
class QuestionAdmin(admin.ModelAdmin):
search_fields = ['subject']
admin.site.register(Question, QuestionAdmin)
Question 모델에 세부 기능을 추가할 수 있는 QuestionAdmin 클래스를 생성하고 제목 검색을 위해 search_fields 속성에 'subject'를 추가한다.
이렇게 수정하면 다음처럼 검색 기능이 추가된 화면을 볼 수 있다.
검색어로 "장고"를 입력하고 "검색"버튼을 클릭하는 경우
제목에 "장고"라는 문자열이 있는 Question 데이터가 조회된다.
장고 관리자에는 이 외에도 무수히 많은 기능들이 있다.
'Framework > Django' 카테고리의 다른 글
[Django] 장고(Django) 기본요소 - URL 별칭 (0) | 2022.11.27 |
---|---|
[Django] 장고(Django) 기본요소 - 조회와 템플릿 (0) | 2022.11.26 |
[Django] 장고(Django) 기본요소 - 모델(Model) (4) | 2022.11.24 |
[Django] 장고(Django) 기본요소 - URL과 View (2) | 2022.11.23 |
[Django] 장고(Django) 프로젝트 생성하기 (0) | 2022.11.23 |