【Python】【进阶篇】21、Django Admin数据表可视化

news2024/10/2 14:35:40

目录

  • 21、Django Admin数据表可视化
    • 1. 创建超级用户
    • 2. 将Model注册到管理后台
        • 1)在admin.py文件中声明
    • 3. django_admin_log数据表

21、Django Admin数据表可视化

在《Django Admin后台管理系统》介绍过 Django 的后台管理系统是为了方便站点管理人员对数据表进行操作。Django 的 ORM 模块提供了丰富的 API 用于实现对 Model 的增删改查,但是对于 Web 站点的管理运营人员来说,学习它们的成本较高,且误操作的可能性较大。当然开发人员自己也可以去构建管理界面,但是当系统越来越复杂,Model越来越多的时候, 就会增加很多重复性的工作。

综上所述,Django 完全考虑到了这些问题,它可以让开发人员几乎不用写代码就能拥有一个功能强大的 Model 管理后台。下面我们一起来学习 Django 提供的这个强大功能。

1. 创建超级用户

我们是使用在《Django Admin后台管理系统》中提到过的命令创建超级管理员账户,命令如下所示:

python manage.py createsuperuser --username=admin --email=admin@163.com

这里将用户名设置为 admin,邮箱设置为 admin@163.com,也可以根据自己的需要去修改。如果在 createsuperuser 后面不加任何内容,Django 会提示用户输入用户名和邮箱。当前命令执行后,需要重复输入两次密码,密码可以根据自己的需要设置,但是密码不能过于简单,如下图所示,表示创建成功:

在这里插入图片描述

图1:创建超级用户admin

提示:超级用户拥有所有权限,方便技术人员或非技术人员以可视化的形式对应用数据记录实现增删改查的操作。

在 CMD 命令行工具启动 BookStore 项目,然后在浏览器地址栏输入 127.0.0.1:8000/admin 访问,输入刚刚创建的超级用户名以及密码进行登录。如下所示登录成功:

在这里插入图片描述

图2:Admin后台超级用户登录

2. 将Model注册到管理后台

1)在admin.py文件中声明

那么如何把自定义的数据表 Model 注册到管理后台呢?也就是说要把 Model 显示在 Admin 后台管理系统界面,需要做哪些操作呢?当我们使用
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刷新后台管理系统的显示页面,可以得到如下结果:

在这里插入图片描述

图3:admin 后台数据表可视化

提示:在图 3 中,每张数据表的名字都加上了 s ,这是 Django 自动设定的,我们可以通过相应的修改将其去掉,在后续章节我们将介绍。

虽然看似页面简单并且没有太多的附加功能,但是对于简单的增删改操作而言已经足够使用了。我们打开其中的 UserInfos 数据表来查看,如下所示:

在这里插入图片描述

图4:admin后台数据表可视化

点击增加 USERI INFO 按钮会得到如下页面,在此页面我们可以进行数据的添加、编辑、保存操作:

在这里插入图片描述

图5:admin后台数据表可视化

上图中提到的问题,其实只需要我们在自定义的模型类中添加上一个字段选项 verbose_name 就可以修改了,小伙伴们可以自己修改一下。

3. django_admin_log数据表

Admin 应用在数据库迁移的过程中只创建了 django_admin_log 一张表 ,用于记录通过管理后台完成的对 Model
的增删改操作,如下所示,是数据库迁移过程中生成的所有数据表:

mysql> show tables;
+----------------------------+
| Tables_in_bookstoredb      |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
| index_author               |
| index_book                 |
| index_userinfo             |
+----------------------------+
13 rows in set (0.00 sec)

我们可以使用desc命令查看 django_admin_log 表结构, 如下所示:

mysql> desc django_admin_log;
+-----------------+----------------------+------+-----+---------+----------------+
| Field           | Type                 | Null | Key | Default | Extra          |
+-----------------+----------------------+------+-----+---------+----------------+
| id              | int(11)              | NO   | PRI | NULL    | auto_increment |
| action_time     | datetime(6)          | NO   |     | NULL    |                |
| object_id       | longtext             | YES  |     | NULL    |                |
| object_repr     | varchar(200)         | NO   |     | NULL    |                |
| action_flag     | smallint(5) unsigned | NO   |     | NULL    |                |
| change_message  | longtext             | NO   |     | NULL    |                |
| content_type_id | int(11)              | YES  | MUL | NULL    |                |
| user_id         | int(11)              | NO   | MUL | NULL    |                |
+-----------------+----------------------+------+-----+---------+----------------+
8 rows in set (0.01 sec)

这些字段含义只做简单了解即可,如下所示:

  • 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对象(默认值),记录执行操作的用户。

本节我们在 Admin 后台管理系统实现了数据表的可视化,通过这个功能我们就可以对数据表进行管理,极大的方便了 Web 站点的管理人员。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/484608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java面试八股文】数据库篇

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 目录 请你说说MySQL索引,以及它们的好处和坏处 请你说说MySQL的索引是什么结构,为什么不用哈希表 请你说说数据库索引的底…

R语言 | 编写自己的函数

目录 一、正式编写程序 二、设计第一个函数 三、函数也是一个对象 四、程序代码的简化 五、return()函数的功能 六、省略函数的大括号 七、传递多个参数函数的应用 7.1 设计可传递2个参数的函数 7.2 函数参数的默认值 7.3 3点参数“…”的使用 八、函数也可以作为参数 …

《针灸》笔记(倪海厦先生人纪系列针灸篇)

程序员上了年纪,各种职业病就来了,人工智能成为好工具的同时,自己的时间也多了一些。 了解他才能判断他的真伪,没学过就认为中医是糟粕的,请划走。 学到什么记什么,线上线下齐下手,自用笔记&…

【Python基础入门学习】Python高级变量你了解多少?

认识高级变量 1. 列表 list1.1 列表的定义1.2 列表常用操作关键字、函数和方法 1.3 循环遍历1.4 列表嵌套1.5 应用场景 2. 元组 tuple2.1 元组的定义2.2 元组常用操作2.3 应用场景 3. 字典 dictionary3.1 字典的含义3.2 字典常用操作3.3 应用场景 4. 字符串 string4.1 字符串的…

基于PyQt5的图形化界面开发——模拟医院管理系统

基于PyQt5的图形化界面开发——模拟医院管理系统 0. 前言1. 需求分析2. 挂号界面的思路、UI界面代码及相应触发函数2.1 思路分析2.2 ui_guahao.py2.3 相应的触发函数代码 3. 就诊界面的思路、UI界面代码及相应触发函数3.1 思路分析3.2 ui_jiuzhen.py3.3 相关触发函数&#xff1…

如何制定专属于自己的个人目标

文章目录 前言一、自问自答二、制定目标的原则1.明确性2.衡量性3.可实现性4.相关性5.时限性 三、对目标进行计划1.5W2H1.做什么(what to do it)2.为什么做(why to do it)3.何时做(when to do it)4.何地做(w…

8b/10b编码方式(详细)总结附实例快速理解

目录 前言一、简介二、转换过程2.1 背景2.2 具体转换过程 三、其他相关链接1、PCI总线及发展历程总结2、PCIe物理层总结-PCIE专题知识(一)3、PCIe数据链路层图文总结-PCIe专题知识(二) 前言 本文主要通过图文方式介绍8b/10b编码&…

Hystrix线程池问题

背景:在一个以springcloud为基础架构的微服务项目中,活动期间并发量一大就会出现服务调用失败的问题。经定位发现,被调用服务中无对应的请求日志,继续通过日志查询确认是feign调用时出现服务降级,进入降级方法统一返回…

教会你制作自己的浏览器 —— 并将 ChatGPT 接入

前期回顾 分享24个强大的HTML属性 —— 建议每位前端工程师都应该掌握_0.活在风浪里的博客-CSDN博客2分享4个HTML5 属性,开发必备https://blog.csdn.net/m0_57904695/article/details/130465836?spm1001.2014.3001.5501 👍 本文专栏:开发…

对抗性攻击和防御竞争(Adversarial Attacks and Defences Competition)的通俗解读

通过我们在Pytorch对机器学习模型的安全漏洞攻击方法之Fast Gradient Sign Attack(FGSM,快速梯度符号攻击)https://blog.csdn.net/weixin_41896770/article/details/130319089 这篇文章的介绍,我们了解到FGSM可以对机器学习模型进行有效的攻击,成功的让M…

【MOMO】高水平期刊目录(持续更新)

高水平期刊目录 引言1 顶级期刊目录(A)1.1 IEEE Transactions on Intelligent Transportation Systems1.2 IEEE Transactions on Neural Networks and Learning Systems1.3 Engineering 2 权威期刊目录(A)2.1 Measurement 3 鼓励期…

从零开始三相逆变

1、题目分析 2、方案介绍 系统以220V市电作为电源,通过隔离调压器后分两路经过整流滤波后输入电路,一路为主回路供电,一路为辅助电源供电。三路SPWM波通过数字隔离器ISO7760送至由驱动芯片UCC27211控制三相半桥逆变电路,生成三路…

《嵌入式系统》知识总结2:Cortex-M3处理器和STM32

Cortex处理器分类 Cortex-A(应用)处理器,Cortex-R(实时)处理器,Cortex-M(微控制器)处理器...等 CM3内核优点 1. 高性能Cortex-M内核 • 采用ARM公司流行的标准内核Cortex-M3 • …

探秘C语言中整数的二进制表示:原码、反码、补码,以及大小端字节序的奥秘

本篇博客会讲解整数在内存中的存储形式,以及整数二进制的3种表示形式:原码、反码、补码,还有大小端的相关知识点。相信读完本篇博客,大家对内存的了解会上一个台阶。 注意:本篇博客讨论的是整数在内存中的存储&#x…

将mininet流量数据可视化至前端

目录 准备工作:将mininet流量数据输入数据库流量可视化 准备工作: 创建项目 django-admin startproject mininet_webpython manage.py runserver 0.0.0.0:8000init文件加上: settings改数据库,具体看上一篇 创建第一个app mo…

Windows安装mariadb,配置环境变量(保姆级教学)

软件下载地址:https://mariadb.com/downloads/ 1.双击下载好的软件 2.点击next 3.勾选我同意,点击next 4.这里那你可以设置你要安装的路径,也可以使用默认的,之后点击next 5.如图所示,设置完点击next 6.接下来就默…

如何让ChatGPT成为科研工作中的小助手?(附使用指南)

大家好,我是带我去滑雪! 从2022年年底发布叫ChatGPT的人工智能聊天机器人以来,逐渐强势进入了各行各业,一夜火爆全网,它使用自然语言处理技术来与用户进行交互和沟通,可以回答用户关于知识、娱乐、生活等方…

MySQL高级篇——MVCC多版本并发控制

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 目录 1. 什么是MVCC 2. 快照读与当前读 2.1 快照读 2.2 当前读 3. MVCC三剑客 3.1 回顾隔离级别 3.2 隐藏字段、Undo…

组合导航卡尔曼滤波几个杂项

1.组合导航卡尔曼滤波噪声协方差矩阵调参 在组合导航卡尔曼滤波算法中,主要涉及两个噪声协方差矩阵,过程噪声协方差矩阵Q,测量噪声协方差矩阵R,具体来说: R表示测量噪声协方差,它是一个数值,这…

【Unity-UGUI控件全面解析】| Toggle 开关组件详解

🎬【Unity-UGUI控件全面解析】| Toggle 开关组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 监听开关事件五、组件相关扩展使用5.1 配合Toggle Group组使用💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y …