title: django之admin管理系统使用 #标题tags: #标签
date: 2021-11-25
categories: python # 分类

django默认为我们提供了后台数据库管理功能,这篇文章就来记录下如何使用admin管理系统。

创建管理用户

我们想要在admin管理页面管理我们的数据库,就需要先把我们的数据库模型注册到admin中,一般新建一个项目后,在我们的项目路由系统中,默认会有admin的一条路由规则,如下:

  1. from django.contrib import admin
  2. from django.urls import path
  3. urlpatterns = [
  4. path('admin/', admin.site.urls), # 就是这个
  5. ]

也就是说,我们启动项目后,通过浏览器访问amin这个项目的话,就可以看到我们的管理系统登录页面,如下:

django之admin管理系统使用 - 图1

好,现在页面访问到了,用户名和密码哪里来呢?

方式1:通过命令

  1. # 项目目录下执行(有manager.py这个文件的目录下),然后按照提示输入自定义的用户名和密码
  2. $ python manager.py createsuperuser

方式二:通过pycharm提供的工具

点击如下,以便运行manager.py文件:

django之admin管理系统使用 - 图2

登录管理系统

使用上面创建的用户名和密码,就可以登录到管理系统中,登录后的页面如下:

django之admin管理系统使用 - 图3

可以看到的默认两个表,user和group,这是django默认内置的两个表,也是用来存放我们刚才的登录账号和权限的,那我们如何来看到我们自己的表呢?接下来就需要将我们的表注册到admin了。

注册数据库

打开项目中的admin.py文件,编写内容如下:

  1. from django.contrib import admin
  2. from sample_app import models # 引入应用目录下的models文件
  3. # admin.site.register() 为注册数据表的固定格式,
  4. # 括号中间写要注册的数据库(也就是你在models中定义的数据模型)
  5. admin.site.register(models.Book)
  6. admin.site.register(models.Publish)
  7. admin.site.register(models.Author)
  8. admin.site.register(models.AuthorDetail)

如上所示,我在models文件中定义的数据模型如下:

django之admin管理系统使用 - 图4

现在我们重新启动项目后,再次登录管理系统就可以看到如下页面了:

django之admin管理系统使用 - 图5

django之admin管理系统使用 - 图6

如果我们不想让上面添加的数据显示是一个对象怎么办呢?我想显示为它表中的一个字段,比如name字段,如果这样的话,你在models.py文件中定义数据模型时,就需要给每个想显示字段值的模型添加__str__方法了,如下:

  1. class Publish(models.Model):
  2. name = models.CharField(max_length=32)
  3. city = models.CharField(max_length=32)
  4. email = models.EmailField()
  5. # 定义如下方法即可
  6. def __str__(self):
  7. return self.name

然后刷新管理页面,即可看到显示为字段的值:

django之admin管理系统使用 - 图7