如何啟用並連接Django管理界面

介紹

如果你有跟隨過Django 開發系列,你已經建立了一個 Django 應用程式,連接了你的應用程式到 MySQL,並且為你的部落格網站應用程式中的文章評論數據創建了資料庫模型。

在這個教程中,我們將連接並啟用Django 管理介面,以便你可以管理你的部落格網站。Django 管理介面預先內建了一個用戶界面,旨在允許你和其他可信任的人員管理網站的內容。

值得注意的是,Django 的官方文件指出,雖然這對於組織內部使用是理想的,但不建議圍繞自動生成的 Django 管理介面來構建網絡應用程式。如果你發現你的介面需要更加流程中心化,或者證明抽象了數據庫表和字段的實現細節,最好為管理介面的一側編寫自己的視圖。

先決條件

本教程是Django 開發系列的一部分,也是該系列的延續。

如果你沒有跟隨該系列進行操作,我們做出以下假設:

  • 你已經安裝了 Django 版本 4 或更高版本。
  • 你已經將你的 Django 應用連接到了一個數據庫。我們使用的是 MySQL,你可以通過遵循 Django 系列的第二部分 “如何創建一個 Django 應用並將其連接到數據庫” 來實現這種連接。
  • 你正在使用一個基於 Unix 的操作系統,最好是一個 Ubuntu 22.04 的雲服務器,因為這是我們測試過的系統。如果你想在類似環境中設置 Django,請參考我們的教程 “如何在 Ubuntu 22.04 上安裝 Django 並設置開發環境”。

由於本教程主要涉及 Django 管理界面,即使你的設置略有不同,你可能也能夠跟隨進行操作。

第一步-啟用管理界面

每當我們開始使用Python和Django進行工作時,我們應該啟動我們的Python虛擬環境並進入我們應用程序的根目錄。如果您按照系列進行操作,可以通過輸入以下命令來實現。

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

為了啟用Django管理員,我們需要確保我們的應用程序是settings.py文件中INSTALLED_APPS列表的一部分。

導航到設置文件的目錄:

  1. cd ~/my_blog_app/blog/blog/

從這裡,使用像nano這樣的文本編輯器打開settings.py文件。如果它還沒有,請將django.contrib.admin添加到INSTALLED_APPS列表中,以類似nano的文本編輯器。

  1. nano settings.py

文件的INSTALLED_APPS部分應類似於下面的文件。我們在列表中的應用程序是頂部的那個,'blogsite',但如果您創建了一個不同名稱的應用程序,請確保該應用程序在此文件中列出,如示例所示。

settings.py
...
# 應用程式定義
INSTALLED_APPS = [
    'blogsite',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
...

如果您進行了更改,請務必保存並關閉文件。在nano中,您可以通過輸入CTRLX然後Y再然後ENTER來完成此操作。

現在,我們可以使用nano或其他文本編輯器打開urls.py文件。

  1. nano urls.py

在頂部的注釋下面,文件應該類似於以下內容。

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

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

如果文件與上述不同,請將上面的行複製並粘貼到您的urls.py文件中。

現在我們確保了我們的Django網絡項目在settings.pyurls.py文件中有適當的代碼,我們知道我們的應用程序將可以訪問管理模型和管理用戶界面。

第二步 – 驗證Admin是否是已安裝的應用程序

我們應該接下來將模型遷移到數據庫,以便它可以使用新添加的Admin模型。

進入包含manage.py文件的目錄。

  1. cd ~/my_blog_app/blog

請記住,每次對models進行任何更改時,都要運行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,電子郵件 [email protected] 和密碼 admin123 創建管理員帳戶。您應該根據自己的偏好填寫這些信息,並確保使用一個安全的密碼,以便您記住。

Output
Username (leave blank to use 'root'): admin_user Email address: [email protected]

在看到 密碼: 提示時,請兩次輸入密碼。在輸入密碼時,您的密碼輸入的按鍵不會顯示在輸出中。在每個提示後按 enter 鍵確認密碼。

Output
Password: Password (again):

此時,我們已經擁有一個帳戶名為 admin_user,密碼為 admin123 的管理員帳戶。

讓我們登錄並調查我們的管理員頁面上存在什麼。

如果需要,使用 python manage.py runserver 0.0.0.0:8000 再次運行 Django 應用程序,然後再次導航到 URL http://your-server-ip: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

将以下代码行添加到文件中。

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

这些是允许我们的应用程序访问views的URL模式表达式,用于PostsComments。我们还没有创建这些views,但稍后会在系列中介绍。

第5步-将博客应用程序连接到管理界面

将我们的博客连接到管理界面将允许我们在管理仪表板中看到PostsComments的链接。现在,仪表板当前只显示GroupsUsers的链接。

要将这两者连接在一起,我们需要在blogsite的管理文件中注册我们的PostsComments模型。

导航到blogsite目录:

  1. cd ~/my_blog_app/blog/blogsite

然后,用您选择的文本编辑器打开admin.py文件。

  1. nano admin.py

文件中将包含一个导入语句和一个注释。

admin.py
from django.contrib import admin

# 在此处注册您的模型。

您应该编辑文件,使其包含以下代码以支持我们的应用程序。

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


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

当您对文件满意后,保存并退出。

您現在已經在管理面板中註冊了 PostComment 模型。這將使管理介面能夠識別這些模型並將其顯示給已登錄並查看管理儀表板的用戶。

步驟 6 — 驗證博客應用已添加到管理面板

現在您已經添加了相關的 Python 代碼,運行服務器。打開 http://your-server-ip:8000/admin,並使用您的憑據登錄管理員,如果您還沒有登錄。在本教程中,我們一直使用用戶名 admin_user 和密碼 admin123 進行登錄。

現在您已經登錄,您應該會看到以下網頁。如果它與之前沒有變化,您可能需要刷新瀏覽器。

這樣可以確認我們現在已將我們的應用程式 blogsite 連接到 Django 管理儀表板。

在測試應用程式完成後,您可以按下 CTRL + C 來停止運行 Django 服務器。這將返回您的編程環境。

當您準備離開 Python 環境時,可以運行 deactivate 命令:

  1. deactivate

停用編程環境將使您回到終端命令提示符。

結論

在這個教程中,您成功啟用了管理界面,創建了管理員登錄,並在管理員中註冊了PostComment模型。

使用Django管理界面,您將能夠創建帖子並監控博客中的評論。

在接下來的系列中,我們將為博客應用程序創建views

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-and-connect-the-django-admin-interface