Post

Django: 관리자 페이지 (Admin Site)

Django 관리자 페이지 설정 및 커스터마이징 방법을 다룹니다.

Django: 관리자 페이지 (Admin Site)

✔️ 관리자 전용 페이지는 왜 필요할까요?

실제 서비스를 운영하다 보면 서비스를 관리하기 위한 전용 페이지가 필요합니다. 모든 관리자에게 데이터베이스를 열어주거나, 매번 SQL을 입력해서 데이터를 조회하거나 수정하는 것은 비효율적이며 보안상 큰 문제가 될 수 있습니다.

💡 이런 이유로 관리자용 페이지가 필요합니다.

  • 데이터 관리를 더 편리하게.
  • 보안과 접근 제어 강화.
  • 서비스 운영의 효율성 증대.

하지만, 사이트 구축만으로도 충분히 벅찬 상황에서 관리자 페이지를 직접 구현하는 일은 큰 부담이 될 수 있습니다. 이런 문제를 해결하기 위해 Django는 기본적으로 관리자 페이지를 제공하여 개발자와 운영자 모두에게 큰 도움을 줍니다.

Django의 Admin Site

Django는 강력한 기본 관리자 사이트를 제공하며, 이는 Django를 선택하는 중요한 이유 중 하나입니다.

Admin Site의 주요 기능:

  • 데이터베이스 레코드 조회, 생성, 수정, 삭제.
  • 사용자 권한 부여 및 관리.
  • 페이지 디자인 및 기능 커스터마이징.

기본 Admin Site 설정:

프로젝트의 urls.py 파일에서 아래와 같이 기본 경로를 설정하면 관리자 페이지에 접속할 수 있습니다:

1
path("admin/", admin.site.urls),

이렇게 설정 후 http://127.0.0.1:8000/admin/로 접속하면 Django에서 제공하는 기본 관리자 페이지를 확인할 수 있습니다.

Admin 계정 생성:

관리자 페이지에 접근하려면 superuser 계정을 생성해야 합니다. 아래 명령어를 터미널에 입력하여 계정을 생성하세요:

1
python manage.py createsuperuser

이 명령어를 실행하면 사용자 이름, 이메일 주소, 비밀번호를 입력하는 단계가 나타납니다. 생성된 계정으로 관리자 페이지에 로그인할 수 있습니다.

Admin에서 관리할 모델 등록

관리자 페이지에서 데이터를 관리하려면 먼저 모델을 등록해야 합니다. 등록 과정은 다음과 같습니다:

기본 등록:

  1. 앱 디렉토리의 admin.py 파일을 엽니다.
  2. 아래 코드를 추가합니다:
1
2
3
4
from django.contrib import admin
from .models import Article

admin.site.register(Article)

이제 관리자 페이지에서 Article 모델을 조회, 생성, 수정, 삭제할 수 있습니다.

모델 관리 기능 커스터마이징

기본 기능만으로는 데이터가 많아질 경우 관리가 어려울 수 있습니다. 이를 해결하기 위해 Django는 다양한 커스터마이징 옵션을 제공합니다.

관리자 페이지 커스터마이징 예제:

1
2
3
4
5
6
7
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
    list_display = ("title", "created_at")
    search_fields = ("title", "content")
    list_filter = ("created_at",)
    date_hierarchy = "created_at"
    ordering = ("-created_at",)

주요 옵션 설명:

  • list_display: 목록에 표시할 필드를 지정합니다.
  • search_fields: 검색 필드를 지정합니다.
  • list_filter: 필터 옵션을 추가합니다.
  • date_hierarchy: 날짜 필드를 기준으로 계층적 탐색이 가능하도록 합니다.
  • ordering: 기본 정렬 순서를 지정합니다.

이렇게 설정하면 관리자 페이지에서 더욱 직관적으로 데이터를 관리할 수 있습니다

고급 커스터마이징

Django 관리자 페이지는 기본적인 기능 외에도 고급 커스터마이징을 지원합니다. CSS와 JavaScript를 활용하여 원하는 스타일을 적용하거나, 전용 관리자 페이지를 설계할 수도 있습니다.

더 자세한 내용은 Django 공식 문서를 참조하세요.

Django의 관리자 페이지는 강력한 도구로, 적은 노력으로 데이터 관리와 운영 효율성을 크게 향상시킬 수 있습니다.

This post is licensed under CC BY 4.0 by the author.