CRM【第二篇】: stark组件
介绍:
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. 对以上的三张表做增删改查
- 功能分析
- 为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】 - 基本增删改查


示例源码下载:【luffy_stark-10-基本增删改查实现及应用.zip】
4. 其他常见功能
- 排序
示例源码下载:【luffy_stark-11-排序.zip】 - 模糊搜索(关键字搜索)

示例源码下载:【luffy_stark-12-关键字搜索.zip】 - action批量操作
示例源码下载:【luffy_stark-13-action批量操作.zip】
- 组合搜索
示例源码下载:【luffy_stark-14-组合搜索条件封装和扩展.zip(根据配置获取关联数据-含条件)】
示例源码下载:【luffy_stark-15-组合搜索仅显示.zip】
示例源码下载:【luffy_stark-16-组合搜索筛选(无多选).zip】
示例源码下载:【luffy_stark-17-组合搜索多选(完结).zip】
所有源码下载地址:
CRM【第二篇】: stark组件的更多相关文章
- CRM项目之stark组件(2)
那么从今天开始呢,我们就要开始设计属于我们自己的admin组件,起个名字就叫stark吧(当然你愿意叫什么都可以). stark组件之四步走 仿照admin组件实现流程,stark组件要实现四件事情: ...
- CRM系统之stark组件流程分析
CRM系统主要通过自定义stark组件来实现的(参照admin系统自定义): STARK组件: 1 admin组件 1 如何使用admin 2 admin源码 3 创建自己的admin组件:stark ...
- React第二篇:组件的生命周期
前言:因为生命周期是必须要掌握的,所以React的第二篇咱就写这. (版本:16.3.2) React的生命周期大致分为四个状态:分别是Mouting.Updating.Unmounting.Erro ...
- CRM项目之stark组件
. stark也是一个app(用startapp stark创建),目标时把这个做成一个可以拔插的组件 . setting文件下INSTALLED_APPS 路径要配置好(app的注册) . 写好si ...
- crm项目之stark组件前戏(二)
stark组件的设计主要来源于django中admin的功能,在django admin中只需要将模型表进行注册,就可以在页面对该表进行curd的动作,那么django admin是如何做的呢? 在d ...
- CRM第二篇
检索策略 : 相当于优化查询,主要是分为立即加载和延迟加载. 当你查询一个对象的时候,要想立马使用这个对象,或者说是立即查询出来,就使用立即加载. 当你查询这个对象时候不想立马查询出来,而是在使用这个 ...
- 基于GBT28181:SIP协议组件开发-----------第二篇SIP组件开发原理
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3937590.html,qq:1269122125. 上一节中讲的S ...
- CRM项目之stark组件(1)
admin组件 admin组件的简单使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py ...
- crm项目-stark组件分析
############### stark组件 ################ """ 这个stark组件是非常神奇的 1,独立的一个组件 2,没有mod ...
随机推荐
- HttpClient 常用方法封装
简介 在平时写代码中,经常需要对接口进行访问,对于 http 协议 rest 风格的接口请求,大多使用 HttpClient 工具进行编写,想着方便就寻思着把一些常用的方法进行封装,便于平时快速的使用 ...
- Astah类图中使用list<>
如何在类图中表示如下的属性,这个问题困扰了我好久.之前百度找不着任何相关的内容,今天终于在其官方论坛找着了答案. class cMeterRecord { protected: cMeterStatu ...
- PyQt5 FileDialog的使用例子
加载***.ui文件可以使用: loadUi('main_window.ui', self) self.btnFileChoose.clicked.connect(self.getFolderName ...
- CentOS7.5搭建Hadoop2.7.6完全分布式集群
一 完全分布式集群搭建 Hadoop官方地址:http://hadoop.apache.org/ 1 准备3台客户机 1.2 关闭防火墙,设置静态IP,主机名 关闭防火墙,设置静态IP,主机名此处略 ...
- jmeter录制app测试脚本
1.jmeter 下载地址 https://jmeter.apache.org 2.选择下载包 3.下载完成后解压即可使用(也可以配置环境变量,但我一般不配置,可以使用) 4.打开jmeter 创建线 ...
- Android学习笔记ActionView
概念 案例 1.布局文件 activity_main.xml <?xml version="1.0" encoding="utf-8"?> < ...
- 带你学够浪:Go语言基础系列 - 8分钟学复合类型
★ 文章每周持续更新,原创不易,「三连」让更多人看到是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) " 对于一般的语言使用者来说 ,20% ...
- Vmware的各版本KEY
算是之前收集到的备份一下在这里吧,顺便方便别人(ô‿ô) 应该是比较全的 VMware Workstation4.xx for WindowsZHDH1-UR90N-W844G-4PTN6G1NP0- ...
- c++ 对vector和deque进行逆序排序问题
1.vector vector<int> data1; 2.deque deque <int> data2; 逆序排序方式: 方式1.使用reverse函数 (内置数据类型 ...
- 触发器_实现ORACEL自动增长字段
实现XX表的字段code,为自动增长字段? 1.创建一个sequence,如图: 输入如下数据: S_COUNTRY为sequence名称 2.创建一个触发器,目的是在插入数据之前插入自动增长的数字, ...