title: django之admin管理系统使用 #标题tags: #标签
date: 2021-11-25
categories: python # 分类
django默认为我们提供了后台数据库管理功能,这篇文章就来记录下如何使用admin管理系统。
创建管理用户
我们想要在admin管理页面管理我们的数据库,就需要先把我们的数据库模型注册到admin中,一般新建一个项目后,在我们的项目路由系统中,默认会有admin的一条路由规则,如下:
from django.contrib import adminfrom django.urls import pathurlpatterns = [path('admin/', admin.site.urls), # 就是这个]
也就是说,我们启动项目后,通过浏览器访问amin这个项目的话,就可以看到我们的管理系统登录页面,如下:

好,现在页面访问到了,用户名和密码哪里来呢?
方式1:通过命令
# 项目目录下执行(有manager.py这个文件的目录下),然后按照提示输入自定义的用户名和密码$ python manager.py createsuperuser
方式二:通过pycharm提供的工具
点击如下,以便运行manager.py文件:

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

可以看到的默认两个表,user和group,这是django默认内置的两个表,也是用来存放我们刚才的登录账号和权限的,那我们如何来看到我们自己的表呢?接下来就需要将我们的表注册到admin了。
注册数据库
打开项目中的admin.py文件,编写内容如下:
from django.contrib import adminfrom sample_app import models # 引入应用目录下的models文件# admin.site.register() 为注册数据表的固定格式,# 括号中间写要注册的数据库(也就是你在models中定义的数据模型)admin.site.register(models.Book)admin.site.register(models.Publish)admin.site.register(models.Author)admin.site.register(models.AuthorDetail)
如上所示,我在models文件中定义的数据模型如下:

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


如果我们不想让上面添加的数据显示是一个对象怎么办呢?我想显示为它表中的一个字段,比如name字段,如果这样的话,你在models.py文件中定义数据模型时,就需要给每个想显示字段值的模型添加__str__方法了,如下:
class Publish(models.Model):name = models.CharField(max_length=32)city = models.CharField(max_length=32)email = models.EmailField()# 定义如下方法即可def __str__(self):return self.name
然后刷新管理页面,即可看到显示为字段的值:

