介绍:
stark组件,是一个帮助开发者快速实现数据库表的增删改查+的组件。
目标:
10s 中完成一张表的增删改查。
前戏:
- django项目启动时,自定义执行某个py文件。
django启动时,且在读取项目中 路由加载 之前执行某个py文件。 在任意app的apps.py中的Config类中定义ready方法,并调用autodiscover_modules from django.apps import AppConfig from django.utils.module_loading import autodiscover_modules class App01Config(AppConfig): name = 'app01' def ready(self): autodiscover_modules('xxxx') django在启动时,就会去已注册的所有app的目录下找 xxxx.py 并自动导入。 如果执行两次,是因为django内部自动重启导致: python manage.py runserver 120.0.0.1:8001 --noreload 提示: 如果xxxx.py执行的代码向 “某个神奇的地方” 放入了一些值。之后的路由加载时,可以去“某个神奇的地方”读取到原来设置的值。
- 单例模式
单,一个。 例,实例、对象。 通过利用Python模块导入的特性:在Python中,如果已经导入过的文件再次被重新导入时候,python不会再重新解释一遍,而是选择从内存中直接将原来导入的值拿来用。 xxxx.py class AdminSite(object): pass site = AdminSite() # 为AdminSite类创建了一个对象(实例) app.py import utils print(utils.site) import utils print(utils.site) 提示: 如果以后存在一个单例模式的对象,可以先在此对象中放入一个值,然后再在其他的文件中导入该对象,通过对象再次讲值获取到。
- django路由分发的本质:include
方式一: from django.conf.urls import url,include urlpatterns = [ url(r'^web/', include("app01.urls")), ] 方式二: include函数主要返回有三个元素的元组。 from django.conf.urls import url,include from app01 import urls urlpatterns = [ url(r'^web/', (urls, app_name, namespace)), # 第一个参数是urls文件对象,通过此对象可以获取urls.patterns获取分发的路由。 ] 在源码内部,读取路由时: 如有第一个参数有:urls.patterns 属性,那么子路由就从该属性中后去。 如果第一个参数无:urls.patterns 属性,那么子路由就是第一个参数。 方式三: urlpatterns = [ url(r'^web/', ([ url(r'^index/', views.index), url(r'^home/', views.home), ], app_name, namespace)), # 第一个参数是urls文件对象,通过此对象可以获取urls.patterns获取分发的路由。 ]
示例代码下载:pre_luffy_stark.zip
组件开发
1. 创建django project
2. 创建基础业务表
3. 对以上的三张表做增删改查
- 功能分析
为每张表创建4个url - 为每张表创建4个视图函数 app01/models.py Depart /app01/depart/list/ /app01/depart/add/ /app01/depart/edit/(\d+)/ /app01/depart/del/(\d+)/ UserInfo /app01/userinfo/list/ /app01/userinfo/add/ /app01/userinfo/edit/(\d+)/ /app01/userinfo/del/(\d+)/ app02/models.py Host /app02/host/list/ /app02/host/add/ /app02/host/edit/(\d+)/ /app02/host/del/(\d+)/
- 为app中的每个model类自动创建URL以及相关视图函数
示例源码下载:【luffy_stark-1-动态生成URL.zip】
示例源码下载:【luffy_stark-2-URL别名的设置.zip】
示例源码下载:【luffy_stark-3-URL别名的优化.zip】 - 定制页面显示的列
示例源码下载:【luffy_stark-4-列表定义列.zip】
示例源码下载:【luffy_stark-5-为列表定制列预留钩子方法.zip】
示例源码下载:【luffy_stark-6-列表定制列应用.zip】 - 应用模板样式(BootStrap)
示例源码下载:【luffy_stark-7-模板样式的使用.zip】 - 分页
示例源码下载:【luffy_stark-8-分页.zip】 - 添加功能及扩展示例
示例源码下载:【luffy_stark-9-添加功能.zip】 - 基本增删改查
4. 其他常见功能
- 排序
示例源码下载:【luffy_stark-11-排序.zip】 - 模糊搜索(关键字搜索)
示例源码下载:【luffy_stark-12-关键字搜索.zip】 - action批量操作
- 组合搜索
示例源码下载:【luffy_stark-14-组合搜索条件封装和扩展.zip(根据配置获取关联数据-含条件)】
示例源码下载:【luffy_stark-15-组合搜索仅显示.zip】
示例源码下载:【luffy_stark-16-组合搜索筛选(无多选).zip】
示例源码下载:【luffy_stark-17-组合搜索多选(完结).zip】
来源:https://www.cnblogs.com/konghui/p/10211684.html