如何启用和连接Django管理界面
介绍
如果您已经学习了 Django 开发系列,那么您已经启动了一个 Django 应用程序,将您的应用程序连接到 MySQL,并为 Posts
和 Comments
创建了数据库模型] 博客 Web 应用程序中的数据。
在本教程中,我们将连接并启用 Django 管理站点,以便您可以管理您的博客网站。 Django 管理站点预先构建了一个用户界面,旨在允许您和其他受信任的个人管理网站的内容。
值得注意的是,Django 的官方文档指出,虽然这非常适合组织内部使用,但不建议围绕自动生成的 Django 管理界面构建 Web 应用程序。 如果您发现您的界面需要更加以流程为中心或证明要抽象出数据库表和字段的实现细节,那么您最好为管理端编写自己的视图。
先决条件
本教程是 Django 开发系列 的一部分,是该系列的延续。
如果您没有关注本系列,我们将做出以下假设:
- 您已安装 Django 版本 3 或更高版本。
- 您已将 Django 应用程序连接到数据库。 我们使用的是 MySQL,您可以按照 Django 系列的第二部分“如何创建 Django 应用程序并将其连接到数据库”来实现这种连接。
- 您正在使用基于 Unix 的操作系统,最好是 Ubuntu 20.04 云服务器,因为这是我们测试过的系统。 如果您想在类似的环境中设置 Django,请参阅我们的教程,“如何在 Ubuntu 20.04 上安装 Django 并设置开发环境。
由于本教程主要处理 Django 管理界面,因此即使您的设置有所不同,您也可以继续学习。
第 1 步 — 启用管理员
每当我们开始在 Python 和 Django 中工作时,我们应该激活我们的 Python 虚拟环境并进入我们应用程序的根目录。 如果您跟随该系列,您可以通过键入以下内容来实现此目的。
cd ~/my_blog_app . env/bin/activate
为了启用 Django Admin,我们需要确保我们的应用是 settings.py
文件中 INSTALLED_APPS
列表的一部分。
导航到设置文件的目录:
cd ~/my_blog_app/blog/blog/
从这里打开 settings.py
文件。 如果它不存在,请使用 nano 之类的文本编辑器将 django.contrib.admin
添加到 INSTALLED_APPS
列表中。
nano settings.py
文件的 INSTALLED_APPS
部分应该与下面的文件类似。 我们在列表中的应用程序是顶部的应用程序,'blogsite',
但如果您创建了一个不同名称的应用程序,请确保该应用程序在此文件中列出,如图所示。
设置.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
来完成此操作。
我们现在可以再次使用 nano 或其他文本编辑器打开 urls.py
文件。
nano urls.py
在顶部的注释下,该文件应类似于以下内容。
网址.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 步 — 验证 Admin 是已安装的应用程序
接下来我们应该将模型迁移到数据库,以便它选择新添加的管理模型。
导航到 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
、电子邮件 sammy@example.com
和密码 admin123
创建一个管理员帐户。 您应该使用自己的偏好填写此信息,并确保使用您会记住的安全密码。
OutputUsername (leave blank to use 'root'): admin_user Email address: sammy@example.com
然后在看到 Password:
提示时输入两次密码。 输入密码时,您不会收到密码击键的输出。 在每个提示后按 enter 以确认您的密码。
OutputPassword: 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
将以下代码行添加到文件中。
网址.py
from django.urls import path from . import views urlpatterns = [ path('$/', views.posts, name='posts'), path('$/', views.comments, name='comments'), ]
这些是允许我们的应用程序访问 Posts
和 Comments
的 views
所需的 URL 模式表达式。 我们尚未创建那些 views
,但将在本系列的后面部分介绍。
第 5 步 — 将博客应用程序连接到管理员
将我们的博客连接到管理界面将允许我们在管理仪表板中查看 Posts
和 Comments
的链接。 目前,仪表板当前仅显示 Groups
和 Users
的链接。
要将两者连接在一起,我们需要在 blogsite
的管理文件中注册我们的 Posts
和 Comments
模型。
导航到 blogsite
目录:
cd ~/my_blog_app/blog/blogsite
然后,在您选择的文本编辑器中打开 admin.py
文件。
nano admin.py
该文件将填充导入语句和注释。
管理员.py
from django.contrib import admin # Register your models here.
您应该编辑该文件,使其包含以下代码以支持我们的应用程序。
管理员.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
模型。
Django 管理界面是您可以使用博客创建帖子和监控评论的方式。
在本系列中,我们将为博客应用程序创建 views
。