介绍:
  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】

 所有源码下载地址:

stark组件-1.zip

 

stark组件-2.zip

CRM【第二篇】: stark组件的更多相关文章

  1. CRM项目之stark组件(2)

    那么从今天开始呢,我们就要开始设计属于我们自己的admin组件,起个名字就叫stark吧(当然你愿意叫什么都可以). stark组件之四步走 仿照admin组件实现流程,stark组件要实现四件事情: ...

  2. CRM系统之stark组件流程分析

    CRM系统主要通过自定义stark组件来实现的(参照admin系统自定义): STARK组件: 1 admin组件 1 如何使用admin 2 admin源码 3 创建自己的admin组件:stark ...

  3. React第二篇:组件的生命周期

    前言:因为生命周期是必须要掌握的,所以React的第二篇咱就写这. (版本:16.3.2) React的生命周期大致分为四个状态:分别是Mouting.Updating.Unmounting.Erro ...

  4. CRM项目之stark组件

    . stark也是一个app(用startapp stark创建),目标时把这个做成一个可以拔插的组件 . setting文件下INSTALLED_APPS 路径要配置好(app的注册) . 写好si ...

  5. crm项目之stark组件前戏(二)

    stark组件的设计主要来源于django中admin的功能,在django admin中只需要将模型表进行注册,就可以在页面对该表进行curd的动作,那么django admin是如何做的呢? 在d ...

  6. CRM第二篇

    检索策略 : 相当于优化查询,主要是分为立即加载和延迟加载. 当你查询一个对象的时候,要想立马使用这个对象,或者说是立即查询出来,就使用立即加载. 当你查询这个对象时候不想立马查询出来,而是在使用这个 ...

  7. 基于GBT28181:SIP协议组件开发-----------第二篇SIP组件开发原理

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://www.cnblogs.com/qq1269122125/p/3937590.html,qq:1269122125. 上一节中讲的S ...

  8. CRM项目之stark组件(1)

    admin组件 admin组件的简单使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py ...

  9. crm项目-stark组件分析

    ###############    stark组件     ################ """ 这个stark组件是非常神奇的 1,独立的一个组件 2,没有mod ...

随机推荐

  1. Nginx 的变量究竟是怎么一回事?

    之前说了很多关于 Nginx 模块的内容,还有一部分非常重要的内容,那就是 Nginx 的变量.变量在 Nginx 中可以说无处不在,认识了解这些变量的作用和原理同样是必要的,下面几乎囊括了关于 Ng ...

  2. 如何用 Python 和 API 收集与分析网络数据?

    摘自 https://www.jianshu.com/p/d52020f0c247 本文以一款阿里云市场历史天气查询产品为例,为你逐步介绍如何用 Python 调用 API 收集.分析与可视化数据.希 ...

  3. git 本机链接多库配置

    git config --list 查看所有配置 // 提交时读取用户名称及邮箱优先级 --local > --global > --system // 全局配置用户名称及邮箱 git c ...

  4. 商城05——首页轮播图显示实现&Redis环境搭建&Redis实现缓存

    1.   课程计划 1.首页轮播图的展示 2.首页大广告展示流程图 3.Redis的常用命令 4.Redis的服务器搭建 (集群的搭建) 5.向业务逻辑中添加缓存 6.Jedis的使用(redis的客 ...

  5. C#基础——IO

    最近一直忙着做项目,偶尔会碰到一些文件读写方面的需求,当我回忆读写的代码时,发现脑子里存在诸多空白.这是不妙的,于是连忙翻出以前记下的笔记,上面还存在着我当初写下的知识点.怕以后哪天笔记找不到了或者有 ...

  6. Python3-paramiko模块-基于SSH的远程连接模块

    Python3中的paramiko模块,基于SSH用于连接远程服务器并执行相关操作 http://docs.paramiko.org/en/2.1/ SSHClient 用于连接远程服务器并执行基本命 ...

  7. 入门大数据---Spark_Streaming与流处理

    一.流处理 1.1 静态数据处理 在流处理之前,数据通常存储在数据库,文件系统或其他形式的存储系统中.应用程序根据需要查询数据或计算数据.这就是传统的静态数据处理架构.Hadoop 采用 HDFS 进 ...

  8. 浅谈auth模块

    目录 auth模块 什么是Auth模块 auth模块的常用方法 用户注册 扩展默认的auth_user表 auth模块 什么是Auth模块 ​ auth模块是对注册登录认证注销修改密码等方法的一种封装 ...

  9. Linux中清空docker容器日志

    新建文件docker-clear-log,放在/usr/local/bin/目录下,文件内容如下: #!/bin/bash -e if [[ -z $ ]]; then echo "No c ...

  10. windows10 通过vnc远程访问ubuntu16.04

    参考链接 链接1 , 链接2 ,链接3 . 0.前言: 为方便深度学习训练,我们需要多个windows的电脑可以远程访问一个linux系统的工作站(以方便在linux系统上进行深度学习训练) 前提: ...