介绍
如果您一直在Django开发系列中跟进,您可能已经启动了一个Django应用程序,将您的应用程序连接到了MySQL,并为博客Web应用程序中的Posts
和Comments
数据创建了数据库模型。
在本教程中,我们将连接并启用Django管理站点,以便您可以管理博客网站。Django管理站点预先构建了一个用户界面,旨在允许您和其他受信任的个体管理网站的内容。
值得注意的是,Django的官方文档指出,尽管这对于组织的内部使用是理想的,但不建议围绕自动生成的Django管理界面构建Web应用程序。如果您发现您的界面需要更加过程化,或者证明抽象掉数据库表和字段的实现细节,最好为管理端编写自己的视图。
先决条件
这个教程是Django开发系列的一部分,也是该系列的延续。
如果你还没有跟着这个系列学习,我们做出以下假设:
- 你已经安装了Django 4或更高版本。
- 你已经将你的Django应用连接到了数据库。我们正在使用MySQL,并且你可以通过跟随Django系列的第二部分,“如何创建Django应用并连接到数据库”来实现这一连接。
- 你正在使用基于Unix的操作系统,最好是Ubuntu 22.04云服务器,因为这是我们测试的系统。如果你想在类似的环境中设置Django,请参考我们的教程,“如何在Ubuntu 22.04上安装Django并设置开发环境”。
由于这个教程主要涉及Django管理界面,即使你的设置有些不同,你也可能能够跟着进行。
步骤1 —— 启用管理员
每当我们开始在Python和Django中进行工作时,我们应该激活Python虚拟环境并进入我们应用程序的根目录。如果您一直在关注本系列,您可以通过键入以下内容来实现这一点。
- cd ~/my_blog_app
- . env/bin/activate
为了启用Django管理界面,我们需要确保我们的应用程序是settings.py
文件中INSTALLED_APPS
列表的一部分。
导航至设置文件的目录:
- cd ~/my_blog_app/blog/blog/
从这里,打开settings.py
文件。如果还没有,使用像nano这样的文本编辑器将django.contrib.admin
添加到INSTALLED_APPS
列表中。
- nano settings.py
文件的INSTALLED_APPS
部分应类似于下面的文件。列表中的我们的应用程序是排在最前面的'blogsite',
,但如果您创建了一个不同名称的应用程序,请确保该应用程序如演示的那样列在此文件中。
...
# 应用程序定义
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
文件。
- nano urls.py
在顶部的注释下,文件应类似于以下内容。
…
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
如果文件与上面的内容不同,请将上面的行复制并粘贴到您的urls.py
文件中。
现在我们已经确保我们的Django Web项目在settings.py
和urls.py
文件中具有适当的代码,我们知道我们的应用程序将能够访问管理模型和管理用户界面。
步骤2 – 验证管理器是已安装的应用
接下来,我们应该将模型迁移到数据库,以便它可以捕获新增加的管理模型。
导航到manage.py
文件所在的目录。
- cd ~/my_blog_app/blog
记得每当对models
进行任何更改时都要运行migrate
命令,就像这样。
- python manage.py migrate
如果我们没有对以上文件进行任何更改,那么在运行migrate
命令时,我们应该会收到类似以下的输出。
OutputOperations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply.
否则,输出应指示Django已进行所需的迁移以支持我们的应用程序。
现在,我们可以通过运行以下命令来启动服务器。您可以将0.0.0.0
替换为您的IP地址。
- python manage.py runserver 0.0.0.0:8000
然后在您选择的浏览器中导航到管理面板的URL。请确保输入您服务器的IP地址。
http://your-server-ip:8000/admin/
您将收到类似于此的登录屏幕。
到达这个屏幕让我们知道我们已成功启用了管理应用程序。
尽管我们已经启用了应用程序,但我们可能还没有设置 Django 管理帐户。我们可以创建管理员帐户以便在下一步中登录。
步骤 3 — 创建管理员超级用户帐户
如果您已经设置了管理员帐户并可以登录到您的管理员页面,则可以跳过此步骤。
打开一个新的终端连接到服务器,或者按 CTRL
和 C
来禁用 Django 应用,以便我们可以在服务器终端的编程环境中工作。
Django 允许您生成超级用户帐户,我们可以通过运行 manage.py
文件来开始超级用户创建过程。
- python manage.py createsuperuser
一旦我们这样做,我们将被提示填写用户名、电子邮件和密码的详细信息。在本教程中,我们将使用用户名 admin_user
、电子邮件 [email protected]
和密码 admin123
来创建管理员帐户。您应该根据自己的偏好填写这些信息,并确保使用一个您记得住的安全密码。
OutputUsername (leave blank to use 'root'): admin_user
Email address: [email protected]
然后,在看到 密码:
提示时两次输入密码。在输入密码时,您不会收到键入的密码的输出。在每次提示后按 Enter 键确认您的密码。
OutputPassword:
Password (again):
此时,我们已经拥有一个用户名为admin_user
,密码为admin123
的管理员帐户。
让我们登录并调查一下我们的管理员页面上有什么内容。
如果需要,使用python manage.py runserver 0.0.0.0:8000
重新运行Django应用程序,然后再次导航到URLhttp://your-server-ip:8000/admin/
以进入管理员登录页面。然后使用刚刚创建的用户名和密码登录。
成功登录后,您将收到以下页面。
接下来,我们需要开始连接我们的博客应用程序到管理员面板。
步骤 4 —— 为文章和评论创建URL模式
在上一步中,我们成功登录到管理员界面,但您可能已经注意到我们的博客应用程序尚未在那里可用。要将我们的博客应用程序填充到管理员界面中,我们需要添加并注册与相关模型Post
和Comment
相关联的应用程序。
为此,我们将创建一个名为urls.py
的空文件,在blogsite
目录中,如下所示:
- touch ~/my_blog_app/blog/blogsite/urls.py
在此文件中,我们将添加我们的博客应用程序的URL模式,以便通过管理员界面访问它。
导航到我们刚刚创建的urls.py
文件的位置。
- cd ~/my_blog_app/blog/blogsite/
然后用nano打开文件,例如。
- nano urls.py
将以下代码添加到文件中。
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
这些是允许我们的应用程序访问views
的URL模式表达式,用于文章
和评论
。我们尚未创建这些views
,但稍后会在系列中涵盖此部分。
第5步 – 将博客应用连接到管理员
将我们的博客连接到管理员界面将允许我们在管理员仪表板中看到文章
和评论
的链接。当前,仪表板仅显示组
和用户
的链接。
要将两者连接在一起,我们需要在blogsite
的管理员文件中注册我们的文章
和评论
模型。
导航至blogsite
目录:
- cd ~/my_blog_app/blog/blogsite
然后,用您选择的文本编辑器打开admin.py
文件。
- nano admin.py
该文件将包含一个导入语句和一个注释。
from django.contrib import admin
# 在此处注册您的模型。
您应该编辑文件,使其包含以下代码以支持我们的应用程序。
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)
当您对文件满意时,请保存并退出。
你现在已经在管理员面板中注册了Post
和Comment
模型。这将使管理员界面能够捕获这些模型并显示给已登录并查看管理员仪表板的用户。
步骤 6 —— 验证博客应用是否已添加到管理员
现在,你已经添加了相关的Python代码,请运行服务器。打开http://your-server-ip:8000/admin
,如果你还没有登录,请使用你的凭据登录管理员。在本教程中,我们一直使用用户名admin_user
和密码admin123
进行登录。
现在你已经登录,你应该看到以下网页。如果与之前没有变化,可能需要刷新你的浏览器。
这证实我们现在已经将我们的应用blogsite
连接到了Django管理员仪表板。
当你完成了对你的应用进行测试,你可以按CTRL
+ C
来停止运行Django服务器。这将返回你的编程环境。
当你准备离开Python环境时,你可以运行deactivate
命令:
- deactivate
退出你的编程环境将使你回到终端命令提示符。
结论
在本教程中,您已成功启用了管理界面,创建了管理员登录,并在管理界面中注册了Post
和Comment
模型。
Django管理界面是您将能够使用的方式,用于创建帖子并监视博客的评论。
接下来在系列中,我们将为博客应用程序创建views
。