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. 对以上的三张表做增删改查
- 功能分析
为每张表创建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】
CRM系统 - 总结 (二) stark组件的更多相关文章
- crm 系统项目(二) admin 后台操作表格
crm 系统项目(二) admin 后台操作表格 1. app下创建 templates 运行的时候 先找全局的templates——> 按照app的注册顺序找templates中的文件 2. ...
- stark 组件 url 二级分发的实现
模拟 admin 组件url设计思路 项目urls 文件中: from django.contrib import admin from django.urls import path from st ...
- CRM系统之stark组件流程分析
CRM系统主要通过自定义stark组件来实现的(参照admin系统自定义): STARK组件: 1 admin组件 1 如何使用admin 2 admin源码 3 创建自己的admin组件:stark ...
- crm项目之stark组件前戏(二)
stark组件的设计主要来源于django中admin的功能,在django admin中只需要将模型表进行注册,就可以在页面对该表进行curd的动作,那么django admin是如何做的呢? 在d ...
- python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)
一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...
- day 70 crm(7):stark组件调用,以及权限分配
前情提要: 复习: 1: orm !!!!! 2: session 3: django 4: 前端在复习 5: 复习中间件 学习的stark 的组件调用,以及权限的应用 一:权限的概念, 1: ...
- CRM项目之stark组件
. stark也是一个app(用startapp stark创建),目标时把这个做成一个可以拔插的组件 . setting文件下INSTALLED_APPS 路径要配置好(app的注册) . 写好si ...
- CRM项目之stark组件(2)
那么从今天开始呢,我们就要开始设计属于我们自己的admin组件,起个名字就叫stark吧(当然你愿意叫什么都可以). stark组件之四步走 仿照admin组件实现流程,stark组件要实现四件事情: ...
- day67 crm(4) stark组件的增删改 以及 model_from使用和from组件回顾
前情提要:Django stark 组件开发的 增删改, model_form组件的使用 form组件的回顾 一:list_display_link 创建 功能描述: 使包含的字段能 ...
随机推荐
- PuTTY_0.67.0.0工具链接linux
1.虚拟机设置 在网络适配器中选中桥接模式,勾选复制物理网络链接状态(p)选项.点击确认. 2.开启虚拟机,检查是否安装有ssh服务器 a.查看是否启动ssh服务器 ps -a | grep ssh ...
- 在 vue-test-utils 中 mock 全局对象
vue-test-utils 提供了一种 mock 掉 Vue.prototype 的简单方式,不但对测试用例适用,也可以为所有测试设置默认的 mock. mocks 加载选项 mocks 加载选项 ...
- matplotlib 显示两张图片,折线图 和 scipy
显示两张图片的代码: import numpy as np from scipy.misc import imread, imsave, imresize import matplotlib.pypl ...
- GOF23设计模式之建造者模式
GOF23设计模式之建造者模式 场景: 我们要建造一个复杂的产品.比如:神州飞船,Iphone.这个复杂的产品的创建.有这样的一个问题需要处理: 装配这些子组件是不是有个步骤问题? 实际开发中,我们所 ...
- ORA-29857: 表空间中存在域索引和/或次级对象
今天小编在操作 oracle 数据库,删除表空间时引发了异常!! SQL> drop tablespace nbmap including contents; 为什么会造成以上的异常呢? 根据小 ...
- Centos7 下安装 Docker
一.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术:Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像:运行中的这个镜 ...
- LiquidCrystal库函数
主要资料来源: 极客工坊-知识库 (LiquidCrystal库地址:http://wiki.geek-workshop.com/doku.php?id=arduino:libraries:liqui ...
- [叁]Pomelo游戏server编程分享 之 server结构与配置分析
网络部署结构 我们先看一下Pomeloserver网络部署情况,直接上图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3RiaW56aQ==/font/ ...
- 利用Spring Hibernate注解packagesToScan的简化自动扫描方式
转自:https://blog.csdn.net/wzygis/article/details/28256045
- C# Keywords - as
记录一下在日常开发过程中遇到的一些C# 基础编程的知识! 希望以后能用的着.知识是在平常的开发过程中去学到的.只有用到了,你才能深入的理解它,并用好它. 本资料来源于:MSND 下面是一些相关的cod ...