简介
如果你一直跟随Django开发系列,你已经启动了一个Django应用程序,将你的应用程序连接到MySQL,并为你的博客网站应用程序中的Posts 和Comments 数据创建了数据库模型。
在本教程中,我们将连接并启用Django管理站点,以便你能够管理你的博客网站。Django管理网站预置了一个用户界面,旨在让你和其他受信任的人管理网站的内容。
值得注意的是,Django的官方文档指出,虽然这对于一个组织的内部使用是很理想的,但不建议围绕自动生成的Django管理界面建立一个网络应用。如果你发现你的界面需要更加以流程为中心,或者证明要抽象出数据库表和字段的实现细节,那么你最好为管理端编写自己的视图。
前提条件
如果你没有跟上这个系列,我们做了以下假设。
- 你已经安装了Django第4版或更高版本。
- 你已经将你的Django应用连接到了一个数据库。
- 你正在使用一个基于Unix的操作系统,最好是Ubuntu 22.04云服务器,因为这是我们测试过的系统。
由于本教程主要涉及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 文件。如果它还没有在那里,请将django.contrib.admin 添加到INSTALLED_APPS 的列表中,使用像nano这样的文本编辑器。
nano settings.py
该文件的INSTALLED_APPS 部分应该类似于下面的文件。我们的应用程序在列表中是最上面的那个,'blogsite', ,但如果你创建了一个不同名字的应用程序,请确保该应用程序被列在这个文件中,如图所示。
settings.py
...
# 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 来做到这一点。
现在我们可以打开urls.py 文件,同样用nano或其他文本编辑器。
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.py 和urls.py 文件中有适当的代码,我们知道我们的应用程序将能够访问管理模型和管理用户界面。
第2步 - 验证Admin是一个已安装的应用程序
我们接下来应该把模型迁移到数据库中,以便它能接收到新添加的Admin模型。
导航到manage.py 文件所在的目录。
cd ~/my_blog_app/blog
记住每当你对models 做任何改变时,都要运行migrate 命令,像这样。
python manage.py migrate
如果我们没有对上面的文件做任何改变,在运行migrate 命令时,我们应该收到与下面类似的输出。
Output
Operations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply.
否则,输出结果应该表明Django进行了支持我们应用程序所需的迁移。
现在我们可以通过运行以下命令来启动服务器。你可以用你的IP地址替换0.0.0.0 。
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,电子邮件 sammy@example.com和密码 admin123.你应该根据自己的喜好来填写这些信息,并确保使用一个你能记住的安全密码。
Output
Username (leave blank to use 'root'): admin_user
Email address: sammy@example.com
然后在看到Password: 的提示时输入两次密码。当你输入密码时,你将不会收到密码的按键输出。在每次提示后按回车键确认你的密码。
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模式
在上一步中,我们成功地登录了管理界面,但你可能已经注意到,我们的博客应用在那里还不能使用。为了使我们的管理界面充满博客应用,我们需要在相关的模型Post 和Comment 中添加并注册它。
要做到这一点,我们将在blogsite 目录中创建一个名为urls.py 的空文件,像这样。
touch ~/my_blog_app/blog/blogsite/urls.py
在这个文件中,我们将为我们的博客应用程序添加URL模式,以便我们可以通过管理界面访问它。
导航到我们刚刚创建的那个urls.py 文件的位置。
cd ~/my_blog_app/blog/blogsite/
然后用nano打开该文件,比如说。
nano urls.py
在该文件中添加以下几行代码。
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
这些是所需的URL模式表达式,允许我们的应用程序访问views ,用于 Posts和 Comments.我们还没有创建这些views ,但在本系列的后面会涉及到这一点。
第5步--将博客应用连接到管理员
将我们的博客连接到管理界面将允许我们在管理仪表板内看到Posts 和Comments 的链接。现在,仪表板目前只显示Groups 和Users 的链接。
为了将两者连接在一起,我们需要在blogsite 的管理文件中注册我们的Posts 和Comments 模型。
导航到blogsite 目录。
cd ~/my_blog_app/blog/blogsite
然后,在你选择的一个文本编辑器中打开admin.py 文件。
nano admin.py
该文件将被填充一个导入语句和一个注释。
admin.py
from django.contrib import admin
# Register your models here.
你应该编辑该文件,使其包含以下代码,以便支持我们的应用程序。
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)
当你对该文件满意时,保存并退出。
现在你已经在管理面板内注册了Post 和Comment 模型。这将使管理界面能够提取这些模型,并将它们显示给登录并查看管理面板的用户。
第6步 - 验证博客应用程序已被添加到管理中
现在你已经添加了相关的Python代码,运行服务器。打开 http://your-server-ip:8000/admin如果你还没有登录,用你的凭证登录到管理员。在本教程中,我们一直用用户名 admin_user和密码 admin123.
现在你已经登录了,你应该得到以下网页。如果它与之前没有变化,你可能需要刷新你的浏览器。

这证明我们已经将我们的应用程序blogsite ,连接到了Django管理面板上。
当你完成测试你的应用程序时,你可以按CTRL +C 来停止运行Django服务器。这将使你回到你的编程环境。
当你准备离开你的Python环境时,你可以运行deactivate 命令。
deactivate
停用你的编程环境将使你回到终端的命令提示符。
结论
在本教程中,你已经成功地启用了管理界面,创建了一个管理登录,并向管理员注册了Post 和Comment 模型。