如何启用和连接Django管理界面

160 阅读8分钟

简介

如果你一直跟随Django开发系列,你已经启动了一个Django应用程序,将你的应用程序连接到MySQL,并为你的博客网站应用程序中的PostsComments 数据创建了数据库模型。

在本教程中,我们将连接并启用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中,你可以通过输入CTRLX ,然后输入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.pyurls.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 Admin Login Screen

进入这个屏幕让我们知道,我们已经成功启用了管理应用程序。

虽然我们已经启用了应用程序,但我们可能还没有设置Django管理账户。我们可以创建管理账户,以便在下一步骤中登录。

第3步 - 创建管理员超级用户账户

如果你已经设置了一个管理账户,并且可以登录到你的管理页面,你可以跳过这一步。

打开一个新的终端连接到服务器,或者按CTRLC ,禁用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/来获得管理员登录页面。然后用你刚刚创建的用户名和密码和密码登录。

登录成功后,你会收到以下页面。

Django Admin Panel

接下来,我们将需要努力将我们的博客应用程序连接到管理面板上。

第4步 - 为帖子和评论创建URL模式

在上一步中,我们成功地登录了管理界面,但你可能已经注意到,我们的博客应用在那里还不能使用。为了使我们的管理界面充满博客应用,我们需要在相关的模型PostComment 中添加并注册它。

要做到这一点,我们将在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 ,用于 PostsComments.我们还没有创建这些views ,但在本系列的后面会涉及到这一点。

第5步--将博客应用连接到管理员

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

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

导航到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)

当你对该文件满意时,保存并退出。

现在你已经在管理面板内注册了PostComment 模型。这将使管理界面能够提取这些模型,并将它们显示给登录并查看管理面板的用户。

第6步 - 验证博客应用程序已被添加到管理中

现在你已经添加了相关的Python代码,运行服务器。打开 http://your-server-ip:8000/admin如果你还没有登录,用你的凭证登录到管理员。在本教程中,我们一直用用户名 admin_user和密码 admin123.

现在你已经登录了,你应该得到以下网页。如果它与之前没有变化,你可能需要刷新你的浏览器。

Django Admin Panel with Models Added

这证明我们已经将我们的应用程序blogsite ,连接到了Django管理面板上。

当你完成测试你的应用程序时,你可以按CTRL +C 来停止运行Django服务器。这将使你回到你的编程环境。

当你准备离开你的Python环境时,你可以运行deactivate 命令。

deactivate

停用你的编程环境将使你回到终端的命令提示符。

结论

在本教程中,你已经成功地启用了管理界面,创建了一个管理登录,并向管理员注册了PostComment 模型。