在本教程中,我们将连接并启用Django管理站点,以便您可以管理您的博客网站。Django管理站点预先构建了一个用户界面,旨在允许您和其他受信任的个人管理网站的内容。
为了完成本教程,您应该已经搭建了Django开发环境,创建了一个Django应用程序并将其连接到MySQL数据库,并创建了Django模型。
首先激活您的Python虚拟环境:
$ cd ~/my_blog_app
$ . env/bin/activate
为了开启Django管理权限,我们需要将它添加到INSTALLED_APPS
列表settings.py
的文件。中
导航到设置文件的目录:
(env) sammy@ubuntu:$ cd ~/my_blog_app/blog/blog/
从这里打开settings.py
文件。如果没有此文件,请使用像nano
这样的文本编辑器添加django.contrib.admin
到INSTALLED_APPS
列表中。
(env) sammy@ubuntu:$ nano settings.py
该INSTALLED_APPS文件的部分应如下所示:
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', ] ...如果进行了更改,请务必保存并关闭文件。
我们现在可以打开urls.py
,并再次使用nano
或其他文本编辑器打开文件。
(env) sammy@ubuntu:$ nano urls.py
该文件将如下所示:
urls.py
...
from django.urls import path
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
]
自从Django 2.0发布以来,新的django.url.path()函数改进了使用该url()
函数创建url模式的旧方法。该path()
函数允许更简单,更易读的URL路由语法。
以下就是说明这一点的示例。上一个url()
功能,如下所示:
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
现在可以用path()函数编写:
path('articles/<int:year>/', views.year_archive),
新句法还支持URL参数的类型强制。以上示例的year关键字将被解释为一个int与一个string相对。
现在我们确保我们的Django Web项目在settings.py和urls.py文件中都有相应的代码,我们知道我们的应用程序可以访问管理模型和管理员用户界面。
我们接下来应该将模型迁移到数据库,以便它获取新添加的Admin模型。
导航到文件所在的manage.py
目录。
(env) sammy@ubuntu:$ cd ~/my_blog_app/blog
请记住,只要对models进行任何更改,就要运行migrate命令。
(env) sammy@ubuntu:$ python manage.py migrate
在运行命令时,我们应该已经收到以下输出,因为admin我们已经看到导航到文件INSTALLED_APPS各部分时已经添加了模型settings.py。
Operations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply.
我们现在可以通过使用服务器的IP地址运行以下命令来启动服务器。
(env) sammy@ubuntu:$ python manage.py runserver your-server-ip:8000
然后在您选择的浏览器中导航到管理面板的URL:
http://your-server-ip:8000/admin/
你会看到类似的东西。
进入此屏幕显示我们已成功启用管理员应用,虽然我们已启用该应用程序,但目前我们还没有Django管理帐户。我们需要创建管理员帐户才能登录。
您会注意到弹出登录页面,但我们没有登录凭据。创建这些凭据非常简单。
Django提供了一种生成超级用户帐户的简便方法,我们可以通过运行manage.py
文件来启动超级用户创建过程:
(env) sammy@ubuntu:$ python manage.py createsuperuser
完成后,系统会提示我们填写用户名,电子邮件和密码的详细信息。在本教程中,我们将使用用户名admin_user
,电子邮件sammy@example.com
和密码创建一个管理员帐户admin123
。您应使用自己的喜好填写此信息,并确保使用您将记住的安全密码。
Username (leave blank to use 'root'): admin_user
Email address: sammy@example.com
然后在看到Password:
提示时输入密码两次。输入时,您不会看到虚拟键盘或密码。每次提示后按Enter键确认密码。
Password:
Password (again):
此时,我们现在拥有一个管理员帐户,其中包含用户名admin_user
和密码admin123
。
让我们登录并查看管理页面上的内容。 如果需要,再次导航到URLhttp://your-server-ip:8000/admin/
以进入管理员登录页面。然后使用刚刚创建的用户名和密码登录。
成功登录后,您将看到以下页面。
接下来,我们需要将我们的博客应用程序连接到管理面板。
在上一步中,我们已成功登录管理界面,但您可能已经注意到我们的博客应用仍然无法看到。所以现在我们必须通过添加和注册我们的博客应用程序与相关的模型Post
和Comment
来改变它。
为此,我们将在blogsite目录中创建一个名为urls.py的空文件,如下所示:
(env) sammy@ubuntu:$ touch ~/my_blog_app/blog/blogsite/urls.py
在此文件中,我们将为我们的博客应用程序添加URL模式,以便我们可以通过管理界面访问它。
导航到urls.py,我们刚刚创建的文件的位置。
(env) sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite/
然后用nano打开文件。
(env) sammy@ubuntu:$ nano urls.py
将以下代码行添加到文件中。
urls.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
,但稍后将在本系列中介绍。
将我们的博客连接到管理员将允许我们查看管理仪表板内部Posts
和Comments
内部的链接。正如我们之前看到的那样,仪表板目前只显示链接Groups
和Users
。
为此,我们需要在blogsite管理文件中注册我们的Posts
和Comments
模型。
导航到blogsite
目录:
(env) sammy@ubuntu:$ cd ~/my_blog_app/blog/blogsite
然后,创建admin.py
文件:
(env) sammy@ubuntu:$ touch admin.py
完成后,打开文件:
(env) sammy@ubuntu:$ nano admin.py
并编辑该文件,使其包含以下代码。
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
模型。这将使管理界面能够选择这些模型并将其显示给登录并查看管理仪表板的用户。
现在您已经添加了相关的Python代码,请运行服务器。如果您尚未登录,请使用您的凭据打开http://your-server-ip:8000/adminadmin_useradmin123
并登录管理员。在本教程中,我们一直使用用户名和密码登录。
现在您已经登录,在运行服务器时应该会看到以下网页。
这表明我们现在已将我们的应用程序blogsite
到Django管理页面。
完成测试应用程序后,可以按CTRL+ C
停止runserve
r命令。这将返回您的编程环境。
当您准备离开Python环境时,可以运行以下deactivate
命令:
(env) sammy@ubuntu:$ deactivate
停用编程环境将返回终端命令提示符。
在本教程中,您已成功启用管理界面,创建了管理员登录,并使用管理员注册了Post和Comment模型。Django管理界面是您可以使用您的博客创建帖子和监控评论的方式。关于如何使用Django搭建个人博客详见腾讯云社区的相关教程。
参考文献:《How To Enable and Connect the Django Admin Interface》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。