Django基础入门:后台管理 超级用户 数据表注册操作③
- Django Admin数据表
- 后台管理
- 超级用户
- 数据表注册
- admin操作日志
🏘️🏘️个人简介:以山河作礼。
🎖️🎖️:Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主
🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读!
🎁🎁:文章末尾扫描二维码可以加入粉丝交流群,不定期免费送书。
Django Admin数据表
Django 的后台管理系统是非常出色的,新建项目以后,Django 就为我们设置好了后台管理系统的各种功能。
后台管理
- Django Admin 后台管理是 Django 自带的一个功能强大的应用程序,它可以帮助开发人员快速构建一个完全可定制的管理界面。通过Admin 后台管理,管理员可以方便地修改和管理网站中的数据库内容,而无需写任何代码。它提供了对 Django 模型的 CRUD操作(增删改查)功能,并且支持高级功能,如搜索、筛选、排序、分页、导出、导入数据等,管理员只需要使用简单的图形界面就可以完成所有操作。
- 开发人员可以通过在 Django 中创建数据库模型类,自动构建一个功能强大的管理界面,而无需自己设计或编写管理界面所需的 HTML、CSS和 JavaScript等前端代码。管理员可以登录后台管理界面,在列表视图中查看并操作所有可管理的模型,也可以使用自定义表单展示数据、筛选、搜索、排序、分页等功能,更多高级功能则可以通过自定义Admin 类来实现。
🎯Django Admin 后台管理的主要优点包括:
- 快速创建:通过在数据库模型类上增加
admin.site.register
注册,就可以获得一个基本的管理页面。 - 前后端分离:无需自定义管理页面的前端代码,只需专注于编写后台数据库模型类。
- 自定义灵活:可以通过定义自定义的 Admin 类,对 Admin 展示页面进行扩展、定制和优化。
- 安全性:可以对每个用户进行授权和权限管理,比如只允许管理员进行某些类型的操作。
总体而言,Django Admin 后台管理是 Django框架的重要组成部分之一,它提供了强大、灵活、安全的管理界面,使得管理员可以轻松地管理和操作数据库内容。
超级用户
- 这样强大的功能,使用前我们先创建一个超级用户
$ python manage.py createsuperuser
- 依次输入用户名(12345678)、邮箱(12345678@qq.com)、密码(00000000)
- 创建后在网址输入账号密码:http://127.0.0.1:8000/admin/
📌也可以确定某些参数:
$ python manage.py createsuperuser --username=admin --email=admin@163.com
这里将用户名设置为 admin,邮箱设置为 admin@163.com,也可以根据自己的需要去修改。如果在 createsuperuser后面不加任何内容,Django会提示用户输入用户名和邮箱。当前命令执行后,需要重复输入两次密码,密码可以根据自己的需要设置,但是密码不能过于简单。
📌如下图所示,表示创建成功:
🎯注意:输入密码的时候,不会显示。
🎯注意:超级用户拥有所有权限,方便技术人员或非技术人员以可视化的形式对应用数据记录实现增删改查的操作。
启动 BookStore 项目,然后在浏览器地址栏输入 127.0.0.1:8000/admin 访问,输入刚刚创建的超级用户名以及密码进行登录。
🎯如下所示登录成功:
管理员账号信息存储在auth_user中
数据表注册
-
在admin.py文件中声明
当我们使用 startapp 命令创建 index 应用的时候会自动创建 admin.py 文件,想要把自定义的 Model 注册到管理后台,就需要在 admin.py 文件中进行声明,添加如下代码:
from django.contrib import admin #Django自动在admin.py文件中导入 from index.models import Book, Author,UserInfo #这个需要我们自己导入相应的模型类(数据表) admin.site.register([Book,Author,UserInfo])
通过上述代码,我们就完成了将 Model 注册到后台管理系统的操作,其实实现的过程也非常的简单,首先通过
django.contrib
的标准库引入 admin 应用,然后把 index 应用下我们自定义的三张数据表引入,最后我们调用admin.site.register()
方法实现模型类的注册。
📌多个模型类一起注册我们使用列表的形式来统一注册,如果是单一的模型类注册,我们可以使用以下方式即可:
admin.site.register(Book)
📌 至此我们就完成了数据表在 Admin后台管理系统的可视化操作,我们再次使用ctrl+F5
刷新后台管理系统的显示页面,可以得到如下结果:
图中每张数据表的名字都加上了s,这是Django自动设定的,我们可以通过相应的修改将其去掉,
📌 虽然看似页面简单并且没有太多的附加功能,但是对于简单的增删改操作而言已经足够使用了。我们打开其中的 UserInfos 数据表来查看,如下所示:
📌 点击增加 USERI INFO 按钮会得到如下页面,在此页面我们可以进行数据的添加、编辑、保存操作:
admin操作日志
Admin 应用在数据库迁移的过程中只创建了 django_admin_log 一张表 ,用于记录通过管理后台完成的对 Model 的增删改操作。
📌如下所示,是数据库迁移过程中生成的所有数据表:
📌查看 django_admin_log 表结构, 如下所示:
📌这些字段含义只做简单了解即可,如下所示:
-
id
是自增的主键 -
action_time:
datetime 类型,保存操作发生的日期和时间 -
object_id:
longtext 类型,保存修改对象的主键 -
object_repr:
varchar 类型,保存修改后的对象执行 repr 函数的值,repr 是 Python 的内置函数,用于将对象转换为字符串; -
action_flag:
无符号 smallint 类型,用于记录操作类型 ADDITION(值为1,表示添加)、CHANGE(值为 2,表示更新)、DELETION(值为 3,表示删除); -
change_message
:longtext 类型,用于保存修改对象的详细描述; -
content_type_id:
int 类型,外键关联 ContentType 对象; -
user_id:
int类型,外键关键User对象(默认值),记录执行操作的用户。