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 ...
随机推荐
- MSCHART控件中长字符的X轴坐标标注全部显示
X轴坐标如果超过9位的话,就不能完全显示了,就会一个隔一个的显示,解决的办法: Chart1.ChartAreas[].AxisX.Interval = ; //设置X轴坐标的间隔为1 Chart1. ...
- 关于Java中length、length()、size()的区别
length——数组的属性: length()——String的方法: size()——集合/映射的方法:(List.Set.Map) 转载自https://blog.csdn.net/qq_3323 ...
- .NETCore微服务探寻(三) - 分布式日志
前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...
- Spring AOP学习笔记04:AOP核心实现之创建代理
上文中,我们分析了对所有增强器的获取以及获取匹配的增强器,在本文中我们就来分析一下Spring AOP中另一部分核心逻辑--代理的创建.这部分逻辑的入口是在wrapIfNecessary()方法中紧接 ...
- 009.OpenShift管理及监控
一 资源限制 1.1 pod资源限制 pod可以包括资源请求和资源限制: 资源请求 用于调度,并控制pod不能在计算资源少于指定数量的情况下运行.调度程序试图找到一个具有足够计算资源的节点来满足pod ...
- JavaScript DOM 注册事件
一个HTML是一个DOM树,每一个节点都是DOM对象,整个HTML其实也是一个DOM对象,根节点是<html>; 在HTML页面初始化的时候,JavaScript会自动帮DOM对象注册消息 ...
- -手写Spring注解版本&事务传播行为
视频参考C:\Users\Administrator\Desktop\蚂蚁3期\[www.zxit8.com] 0018-(每特教育&每特学院&蚂蚁课堂)-3期-源码分析-手写Spri ...
- 【WebLogic使用】3.WebLogic配置jndi数据源
参见博客:https://blog.csdn.net/acmman/article/details/70146603 参考视频教程: 一.什么是jndi数据源JNDI是Java命名与目录接口(Java ...
- mybatis视频教程2-动态参数
/MyBatis_04_DynamicSQL/src/com/atguigu/mybatis/dao/EmployeeMapperDynamicSQL.java package com.atguigu ...
- 入门大数据---Flink核心概念综述
一.Flink 简介 Apache Flink 诞生于柏林工业大学的一个研究性项目,原名 StratoSphere .2014 年,由 StratoSphere 项目孵化出 Flink,并于同年捐赠 ...