如何启用和连接Django管理界面?
引言
如果您已经按照Django开发系列进行操作,您已经开始创建一个Django应用程序,将您的应用程序连接到MySQL,并为博客Web应用程序中的帖子和评论数据创建了数据库模型。
在本教程中,我们将连接并启用Django管理网站,以便您可以管理您的博客网站。Django管理网站预先内置了一个用户界面,旨在允许您和其他可信任的人管理网站的内容。
值得注意的是,Django的官方文档指出,尽管自动生成的Django管理员界面非常适合组织内部使用,但不建议围绕它构建一个网络应用程序。如果您发现您的界面需要更加过程导向,或者需要隐藏数据库表和字段的实现细节,那么最好是为管理员界面编写自己的视图。
前提条件
这个教程是Django开发系列的一部分,也是该系列的延续。
如果你没有跟随这个系列的话,我们会做出以下的假设。 (If you have not followed along with this series, we will make the following assumptions.)
- You have Django version 4 or higher installed.
- You have connected your Django app to a database. We are using MySQL, and you can achieve this connection by following part two of the Django series, “How To Create a Django App and Connect it to a Database.”
- You are working with a Unix-based operating system, preferably an Ubuntu 22.04 cloud server as this is the system we have tested on. If you would like to set up Django on a similar environment, please refer to our tutorial, “How To Install Django and Set Up a Development Environment on Ubuntu 22.04.
由于本教程主要涉及Django管理界面,即使你的设置略有不同,你仍然可以跟随进行。
第一步 – 启用管理员
每当我们开始使用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’,但如果您创建了一个不同名称的应用程序,请确保该应用程序按照示例在此文件中列出。
– 设置.py
– 配置.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,最后按下回车键来完成这一操作。
我们现在可以使用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文件中有适当的代码,我们知道我们的应用程序将能够访问管理模型和管理用户界面。
第二步 – 验证管理员是否是已安装的应用程序
我们接下来应该将模型迁移到数据库,以便它能够识别新添加的管理模型。
前往 manage.py 文件所在的目录。
- cd ~/my_blog_app/blog
请记得在对模型进行修改时运行迁移命令,如下所示。
- python manage.py migrate
如果我们对上述文件没有进行任何更改,运行迁移命令后,我们应该会得到类似以下输出的结果。
OutputOperations 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 管理员帐户。我们可以在下一步中创建管理员帐户以便登录。
第三步 — 创建管理员超级用户账户
如果您已经设置了管理员账户并且可以登录管理员页面,您可以跳过此步骤。
打开一个新的终端连接到服务器,或者按下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
当你看到“密码:”提示时,输入你的密码两次。在输入密码时,你将无法看到键盘输入的内容。每次出现提示后按回车键确认密码。
OutputPassword:
Password (again):
此时,我们现在拥有一个管理员帐户,用户名为admin_user,密码为admin123。
让我们登录并调查一下我们的管理员页面上有什么内容。
如果需要的话,可以再次使用python manage.py runserver 0.0.0.0:8000运行Django应用程序,并再次导航到URL http://your-server-ip:8000/admin/以访问管理员登录页面。然后使用刚刚创建的用户名和密码登录。
成功登录后,您将收到以下页面。
接下来,我们需要开始将我们的博客应用与管理面板进行连接工作。
步骤四 — 为帖子和评论创建URL模式
在前一步骤中,我们成功登录了管理员界面,但你可能已经注意到我们的博客应用程序还没有在那里可用。为了在我们的管理员界面中添加博客应用程序,我们需要将其与相关的”文章”和”评论”模型添加和注册。
为了实现这个,我们将在博客网站目录下创建一个名为urls.py的空文件,像这样:
- 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'),
]
这些是允许我们的应用程序访问帖子和评论视图所需的URL模式表达式。我们还没有创建这些视图,但稍后会在系列中进行介绍。
步骤5——将博客应用连接到管理员。
将我们的博客与管理界面连接,可以在管理面板中同时查看帖子和评论的链接。目前,仪表板只显示群组和用户的链接。
为了将两者连接起来,我们需要在博客站点的管理文件中注册我们的帖子(Posts)和评论(Comments)模型。
导航至博客站点目录。
- cd ~/my_blog_app/blog/blogsite
然后,用你选择的文本编辑器打开 admin.py 文件。
- nano admin.py
文件将被填充包含导入语句和注释的内容。
from django.contrib import admin
# Register your models here.
为了支持我们的应用,你应该编辑文件,使其包含以下代码。
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)
当您满意文件时,请保存并退出。
你现在已经在管理面板中注册了帖子和评论模型。这将使管理员界面能够识别并展示这些模型给登录并查看管理员仪表盘的用户。
第六步 — 确认博客应用已添加到管理员账户。
现在你已经添加了相应的Python代码,请运行服务器。打开http://your-server-ip:8000/admin并使用您的凭据登录到管理界面,如果您还未登录。在本教程中,我们已经使用用户名admin_user和密码admin123进行登录。
现在您已经登录,您应该会看到以下网页。如果它与之前没有变化,你可能需要刷新浏览器。
这验证了我们已经将我们的应用程序、博客网站与Django管理仪表板连接起来。
当你完成测试你的应用程序后,你可以按下CTRL + C来停止运行Django服务器。这将把你带回编程环境。
当你准备离开Python环境时,你可以运行取消激活命令:
- deactivate
禁用您的编程环境将使您返回到终端命令提示符。
结论
在本教程中,您已成功启用了管理员界面,创建了管理员登录,并将帖子和评论模型注册到管理员界面中。
Django 的管理界面可以让你在博客中创建帖子并监控评论。
在接下来的系列中,我们将为博客应用程序创建视图。