웹사이트 검색

Django 관리 인터페이스를 활성화하고 연결하는 방법


소개

Django 개발 시리즈를 따라했다면 Django 애플리케이션을 시작하고 애플리케이션을 MySQL에 연결하고 게시물댓글 데이터에 대한 데이터베이스 모델을 생성했습니다. 블로그 웹 애플리케이션 내에서.

이 자습서에서는 블로그 웹 사이트를 관리할 수 있도록 Django 관리 사이트에 연결하고 활성화합니다. Django 관리 사이트는 귀하와 다른 신뢰할 수 있는 개인이 웹 사이트의 콘텐츠를 관리할 수 있도록 설계된 사용자 인터페이스로 미리 구축되어 있습니다.

Django의 공식 문서에서는 이것이 조직의 내부 사용에 이상적이지만 자동으로 생성된 Django 관리 인터페이스를 중심으로 웹 애플리케이션을 구축하는 것은 권장하지 않는다고 지적합니다. 인터페이스가 보다 프로세스 중심적이어야 하거나 데이터베이스 테이블 및 필드의 구현 세부 사항을 추상화해야 하는 경우 관리자 측을 위한 고유한 보기를 작성하는 것이 가장 좋습니다.

전제 조건

이 튜토리얼은 Django 개발 시리즈의 일부이며 해당 시리즈의 연속입니다.

이 시리즈를 따르지 않은 경우 다음과 같이 가정합니다.

  • Django 버전 4 이상이 설치되어 있습니다.
  • Django 앱을 데이터베이스에 연결했습니다. 우리는 MySQL을 사용하고 있으며 Django 시리즈의 2부인 "Django 앱을 만들고 데이터베이스에 연결하는 방법\을 따라 이 연결을 달성할 수 있습니다.
  • 당신은 Unix 기반 운영 체제로 작업하고 있으며 Ubuntu 22.04 클라우드 서버가 우리가 테스트한 시스템인 것이 바람직합니다. 유사한 환경에서 Django를 설정하려면 "Ubuntu 22.04에서 Django를 설치하고 개발 환경을 설정하는 방법
  • 자습서를 참조하세요.\n

이 튜토리얼은 주로 Django 관리 인터페이스를 다루므로 설정이 다소 다르더라도 따라할 수 있습니다.

1단계 - 관리자 활성화

Python 및 Django에서 작업을 시작할 때마다 Python 가상 환경을 활성화하고 앱의 루트 디렉터리로 이동해야 합니다. 시리즈를 따라했다면 다음을 입력하여 이를 달성할 수 있습니다.

  1. cd ~/my_blog_app
  2. . env/bin/activate

Django Admin을 활성화하려면 앱이 settings.py 파일의 INSTALLED_APPS 목록에 있는지 확인해야 합니다.

설정 파일의 디렉토리로 이동합니다.

  1. cd ~/my_blog_app/blog/blog/

여기에서 settings.py 파일을 엽니다. 아직 없는 경우 nano와 같은 텍스트 편집기를 사용하여 INSTALLED_APPS 목록에 django.contrib.admin을 추가합니다.

  1. nano settings.py

파일의 INSTALLED_APPS 섹션은 아래 파일과 유사해야 합니다. 목록에 있는 우리의 앱은 블로그사이트의 맨 위에 있는 앱이지만 다른 이름의 앱을 만든 경우 해당 앱이 설명된 대로 이 파일에 나열되는지 확인하세요.

...
# Application definition
INSTALLED_APPS = [
    'blogsite',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
...

변경한 경우 파일을 저장하고 닫으십시오. nano에서는 CTRL, X, Y, ENTER를 차례로 입력하면 됩니다.

이제 nano 또는 다른 텍스트 편집기를 사용하여 urls.py 파일을 다시 열 수 있습니다.

  1. nano urls.py

상단의 주석 아래에 파일은 다음과 유사해야 합니다.

…
"""
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

파일이 위와 다른 경우 위의 줄을 urls.py 파일에 복사하여 붙여넣으십시오.

이제 Django 웹 프로젝트에 settings.pyurls.py 파일에 적절한 코드가 있음을 확인했으므로 애플리케이션이 관리 모델에 액세스할 수 있음을 알고 있습니다. 및 관리 사용자 인터페이스.

2단계 - 관리자가 설치된 앱인지 확인

다음에 모델을 데이터베이스로 마이그레이션하여 새로 추가된 관리자 모델을 선택해야 합니다.

manage.py 파일이 있는 디렉토리로 이동합니다.

  1. cd ~/my_blog_app/blog

이와 같이 모델을 변경할 때마다 migrate 명령을 실행하는 것을 잊지 마십시오.

  1. python manage.py migrate

위의 파일을 변경하지 않은 경우 migrate 명령을 실행하면 다음과 유사한 출력이 표시됩니다.

Output
Operations to perform: Apply all migrations: admin, auth, blogsite, contenttypes, sessions Running migrations: No migrations to apply.

그렇지 않으면 Django가 앱을 지원하는 데 필요한 마이그레이션을 수행했음을 출력에 표시해야 합니다.

이제 다음 명령을 실행하여 서버를 시작할 수 있습니다. 0.0.0.0을 사용자의 IP 주소로 바꿀 수 있습니다.

  1. python manage.py runserver 0.0.0.0:8000

그런 다음 선택한 브라우저에서 관리자 패널의 URL로 이동합니다. 서버의 IP 주소를 입력해야 합니다.

http://your-server-ip:8000/admin/

이와 유사한 로그인 화면이 나타납니다.

이 화면에 도달하면 관리 앱을 성공적으로 활성화했음을 알 수 있습니다.

앱을 활성화했지만 아직 Django 관리 계정을 설정하지 않았을 수 있습니다. 다음 단계에서 로그인하기 위해 관리자 계정을 만들 수 있습니다.

3단계 - 관리 슈퍼 사용자 계정 만들기

이미 관리자 계정을 설정했고 관리자 페이지에 로그인할 수 있는 경우 이 단계를 건너뛸 수 있습니다.

새 터미널을 열어 서버에 연결하거나 서버 터미널의 프로그래밍 환경에서 작업할 수 있도록 CTRLC를 눌러 Django 앱을 비활성화합니다.

Django를 사용하면 슈퍼 사용자 계정을 생성할 수 있으며 manage.py 파일을 실행하여 슈퍼 사용자 생성 프로세스를 시작할 수 있습니다.

  1. python manage.py createsuperuser

그렇게 하면 사용자 이름, 이메일 및 비밀번호에 대한 세부 정보를 입력하라는 메시지가 표시됩니다. 이 자습서에서는 사용자 이름이 admin_user이고 이메일이 sammy@example.com 인 관리자 계정을 만듭니다. 및 암호 admin123. 이 정보를 원하는 대로 입력하고 기억할 수 있는 보안 암호를 사용해야 합니다.

Output
Username (leave blank to use 'root'): admin_user Email address: sammy@example.com

그런 다음 비밀번호: 프롬프트가 표시되면 비밀번호를 두 번 입력합니다. 비밀번호를 입력할 때 비밀번호의 키 입력에서 출력을 수신하지 않습니다. 각 프롬프트 후에 Enter 키를 눌러 암호를 확인하십시오.

Output
Password: Password (again):

이제 사용자 이름이 admin_user이고 암호가 admin123인 관리자 계정이 생겼습니다.

로그인하고 관리자 페이지에 무엇이 있는지 조사해 봅시다.

필요한 경우 python manage.py runserver 0.0.0.0:8000을 사용하여 Django 앱을 다시 실행한 다음 URL http://your-server-ip<로 한 번 더 이동합니다. /mark>:8000/admin/ 관리자 로그인 페이지로 이동합니다. 그런 다음 방금 만든 사용자 이름과 비밀번호 및 비밀번호로 로그인하십시오.

로그인에 성공하면 다음 페이지가 표시됩니다.

다음으로 블로그 앱을 관리자 패널에 연결하는 작업을 해야 합니다.

4단계 - 게시물 및 댓글에 대한 URL 패턴 생성

이전 단계에서 관리자 인터페이스에 성공적으로 로그인했지만 아직 블로그 앱을 사용할 수 없다는 것을 눈치채셨을 것입니다. 블로그 앱으로 관리 인터페이스를 채우려면 관련 모델인 PostComment를 추가하고 등록해야 합니다.

이를 위해 다음과 같이 blogsite 디렉토리에 urls.py라는 빈 파일을 생성합니다.

  1. touch ~/my_blog_app/blog/blogsite/urls.py

이 파일에서 관리 인터페이스를 통해 액세스할 수 있도록 블로그 애플리케이션의 URL 패턴을 추가합니다.

방금 만든 urls.py 파일의 위치로 이동합니다.

  1. cd ~/my_blog_app/blog/blogsite/

그런 다음 예를 들어 nano로 파일을 엽니다.

  1. nano urls.py

파일에 다음 코드 줄을 추가합니다.

from django.urls import path
from . import views
urlpatterns = [
    path('$/', views.posts, name='posts'),
    path('$/', views.comments, name='comments'),
]

애플리케이션이 PostsComments에 대한 views에 액세스할 수 있도록 하는 데 필요한 URL 패턴 표현식입니다. . 우리는 아직 이러한 를 생성하지 않았지만 이 시리즈의 뒷부분에서 이에 대해 다룰 것입니다.

5단계 - 블로그 앱을 관리자에 연결

블로그를 관리 인터페이스에 연결하면 관리 대시보드 내에서 게시물댓글에 대한 링크를 모두 볼 수 있습니다. 현재 대시보드에는 그룹사용자에 대한 링크만 표시됩니다.

둘을 함께 연결하려면 블로그사이트의 관리 파일 내에 게시물댓글 모델을 등록해야 합니다.

블로그사이트 디렉토리로 이동합니다.

  1. cd ~/my_blog_app/blog/blogsite

그런 다음 선택한 텍스트 편집기에서 admin.py 파일을 엽니다.

  1. nano admin.py

파일은 import 문과 주석으로 채워집니다.

from django.contrib import admin

# Register your models here.

우리 앱을 지원하기 위해 다음 코드를 포함하도록 파일을 편집해야 합니다.

from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment


admin.site.register(Post)
admin.site.register(Comment)

파일에 만족하면 저장하고 종료합니다.

이제 관리자 패널 내부에 게시댓글 모델을 등록했습니다. 이렇게 하면 관리 인터페이스에서 이러한 모델을 선택하고 로그인하여 관리 대시보드를 보는 사용자에게 모델을 표시할 수 있습니다.

6단계 - 블로그 앱이 관리자에 추가되었는지 확인

이제 관련 Python 코드를 추가했으므로 서버를 실행합니다. http://your-server-ip:8000/admin을 열고 아직 로그인하지 않은 경우 자격 증명을 사용하여 관리자에 로그인합니다. 이 자습서에서는 사용자 이름 admin_user와 암호 admin123로 로그인했습니다.

이제 로그인했으므로 다음 웹 페이지가 제공되어야 합니다. 이전과 변경되지 않은 경우 브라우저를 새로 고쳐야 할 수 있습니다.

이제 blogsite 앱이 Django 관리 대시보드에 연결되었음을 확인합니다.

앱 테스트가 완료되면 CTRL + C를 눌러 Django 서버 실행을 중지할 수 있습니다. 이렇게 하면 프로그래밍 환경으로 돌아갑니다.

Python 환경을 떠날 준비가 되면 deactivate 명령을 실행할 수 있습니다.

  1. deactivate

프로그래밍 환경을 비활성화하면 터미널 명령 프롬프트로 돌아갑니다.

결론

이 자습서에서는 관리자 인터페이스를 성공적으로 활성화하고 관리자 로그인을 생성했으며 관리자에게 PostComment 모델을 등록했습니다.

Django 관리 인터페이스는 블로그에서 게시물을 작성하고 댓글을 모니터링하는 방법입니다.

이 시리즈에서는 블로그 애플리케이션을 위한 를 생성할 것입니다.