day062 Django之CRM项目admin组件
本节内容:
1、admin组件使用
2、admin源码解析
学习组件的三部曲:
1、学习如何使用组件
2、阅读源码
3、写一个类似的组件
一、admin组件使用
admin是一个Django封装好的app而已
Django 提供了基于 web 的管理工具。
Django 自动管理工具是 django.contrib 的一部分。
1、admin配置的增删改查的url:
查:http://127.0.0.1:8000/admin/app01/publish/
增:http://127.0.0.1:8000/admin/app01/publish/add/
改:http://127.0.0.1:8000/admin/app01/publish/1/change/
删:http://127.0.0.1:8000/admin/app01/publish/1/delete/
url这里通过不同的app名称来具体找对应的表
2、使用前的工作
1、配置settings.py中的INSTALLED_APPS路径
这里配置好,Django才找得到你的APP
2、激活管理工具
通常我们在生成项目时会在 urls.py 中自动设置好,
3、使用管理工具
启动开发服务器,然后在浏览器中访问 http://127.0.0.1:8000/admin/,得到登陆界面,
你可以通过命令 python manage.py createsuperuser 在Terminal控制台下来创建超级用户。
4、先在数据库中创建好数据表的结构
本节实例中的models.py文件
3、admin的定制
完成了上面的操作,就可以开始我们的使用admin组件了。
为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin
1、两种注册方法
2、admin具体的定制方法实例
本节实例中的对应app01程序admin.py文件代码
二、admin源码解析
在看源码解析之前,首先我们要知道单例模式是什么???
1、单例模式
单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 的类来读取配置文件的信息。
如果在程序运行期间,有很多地方都需要使用配置文件的内容,
也就是说,很多地方都需要创建 AppConfig 对象的实例,这就导致系统中存在多个 AppConfig 的实例对象,
而这样会严重浪费内存资源,尤其是在配置文件内容很多的情况下。
事实上,类似 AppConfig 这样的类,我们希望在程序运行期间只存在一个实例对象。
1、在python中,实现单例模式的四种方法
1、使用模块
2、使用 __new__
3、使用装饰器(decorator)
4、使用元类(metaclass)
2、常用的两种实现单例模式的方法new和使用模块
2、admin执行流程(三步走)
1、启动所有app下的admin.py文件
启动Django项目的时候就会,循环加载执行所有已经注册的app中的admin.py文件
2、注册模型类
admin.site: AdminSite的单例对象
admin.site.register(Book,BookConfig) # 注册
admin.site.register(Author)
3、基于二级分发设计url路由
语法:
path('shuying/',([ ],None,None)),
补充知识点:
Book._meta.model_name # 拿到当前表的小写表名 'book'
Book._meta.app_label # 拿到当前表所在的app名称 'app01'
一二级分发的简单示例url.py文件
本节示例二级分发的应用