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

介绍

在本教程中,我们将连接并启用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.adminINSTALLED_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是否为已安装的应用程序

我们接下来应该将模型迁移到数据库,以便它获取新添加的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/以进入管理员登录页面。然后使用刚刚创建的用户名和密码登录。

成功登录后,您将看到以下页面。

管理页面

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

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

在上一步中,我们已成功登录管理界面,但您可能已经注意到我们的博客应用仍然无法看到。所以现在我们必须通过添加和注册我们的博客应用程序与相关的模型PostComment来改变它。

为此,我们将在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'),
]

这些是允许我们的应用程序访问PostsComments的views所需的URL模式表达式。我们尚未创建这些views,但稍后将在本系列中介绍。

第五步 - 将博客应用程序连接到管理员

将我们的博客连接到管理员将允许我们查看管理仪表板内部PostsComments内部的链接。正如我们之前看到的那样,仪表板目前只显示链接GroupsUsers

为此,我们需要在blogsite管理文件中注册我们的PostsComments模型。

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

保存并退出该文件。

您现在已在管理面板中注册了PostComment模型。这将使管理界面能够选择这些模型并将其显示给登录并查看管理仪表板的用户。

第六步 - 验证博客应用程序是否已添加到管理员

现在您已经添加了相关的Python代码,请运行服务器。如果您尚未登录,请使用您的凭据打开http://your-server-ip:8000/adminadmin_useradmin123并登录管理员。在本教程中,我们一直使用用户名和密码登录。

现在您已经登录,在运行服务器时应该会看到以下网页。

Django管理界面

这表明我们现在已将我们的应用程序blogsite到Django管理页面。

完成测试应用程序后,可以按CTRL+ C停止runserver命令。这将返回您的编程环境。

当您准备离开Python环境时,可以运行以下deactivate命令:

(env) sammy@ubuntu:$ deactivate

停用编程环境将返回终端命令提示符。

结论

在本教程中,您已成功启用管理界面,创建了管理员登录,并使用管理员注册了Post和Comment模型。Django管理界面是您可以使用您的博客创建帖子和监控评论的方式。关于如何使用Django搭建个人博客详见腾讯云社区的相关教程。


参考文献:《How To Enable and Connect the Django Admin Interface》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张戈的专栏

js获取url中?后的参数,修复移动版无法切换到电脑版的BUG

昨天,发布了《完美实现移动主题在 360 网站卫士缓存全开情况下的切换》一文,通过 JS 实现了主题在移动端访问时的自动切换,最后提到了可以在电脑版和移动版的 ...

44080
来自专栏SpringBoot 核心技术

第十四章:QueryDSL与SpringDataJPA共同服务于SpringBoot

47440
来自专栏Angular&服务

Angular CLI 常用终端操作命令

初始化创建项目时,自动添加了 <code> @angular/router </code> ,自动添加到package.json 文件中

17040
来自专栏运维小白

11.1 LAMP架构介绍

LAMP架构介绍 LAMP架构包含了 Linux+Apache(httpd)+MySQL+PHP ,简称LAMP Linux是操作系统,比如centos,U...

23690
来自专栏代码散人

利用XCode Targets创建多scheme的iOS项目

在我们的开发iOS的时候,通常会遇到一个项目打包成多个环境的问题,也会遇到一套代码打包成多个项目的问题,最常用的做法是写一个配置文件,在打包的时候修改一下配置文...

16140
来自专栏图像识别与深度学习

2018-03-24python3.6.2 Tensorflow环境配置(win10 64位)

18470
来自专栏

live555工程建立与调试

Live555是一款开源的RTSP服务器,下载地址http://www.live555.com/liveMedia/public/ 下载下来的代码只有源文件,没...

39150
来自专栏小筱月

vue 路由 及 跳转传递参数的总结

65010
来自专栏王磊的博客

CentOS安装运行NodeJS框架Express

 安装依赖包 yum -y install gcc make gcc-c++ openssl-devel wget 下载/解压NodeJs wget http:...

42390
来自专栏张伟博客

如何使用 Git 和 GitHub 来管理自己的代码

    点击右上角加号箭头,在弹出的菜单中选择 "New repository" 选项进行仓库配置。

15520

扫码关注云+社区

领取腾讯云代金券