CRM【第二篇】: stark组件

介绍:
  stark组件,是一个帮助开发者快速实现数据库表的增删改查+的组件。
目标:
  10s 中完成一张表的增删改查。python

前戏:web

  • 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执行的代码向 “某个神奇的地方” 放入了一些值。以后的路由加载时,能够去“某个神奇的地方”读取到原来设置的值。
View Code
  • 单例模式
单,一个。
例,实例、对象。

经过利用Python模块导入的特性:在Python中,若是已经导入过的文件再次被从新导入时候,python不会再从新解释一遍,而是选择从内存中直接将原来导入的值拿来用。
xxxx.py
    class AdminSite(object):
        pass
    site = AdminSite() # 为AdminSite类建立了一个对象(实例)
app.py
    import utils
    print(utils.site)

    import utils
    print(utils.site)


提示:
    若是之后存在一个单例模式的对象,能够先在此对象中放入一个值,而后再在其余的文件中导入该对象,经过对象再次讲值获取到。
View Code
  • 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获取分发的路由。
    ]
View Code

示例代码下载:pre_luffy_stark.zip数据库

组件开发

1. 建立django projectdjango

2. 建立基础业务表app

3. 对以上的三张表作增删改查ide

  • 功能分析
      View Code
  • 为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】url

  • 组合搜索
    示例源码下载:【luffy_stark-14-组合搜索条件封装和扩展.zip(根据配置获取关联数据-含条件)】
    示例源码下载:【luffy_stark-15-组合搜索仅显示.zip】
    示例源码下载:【luffy_stark-16-组合搜索筛选(无多选).zip】
    示例源码下载:【luffy_stark-17-组合搜索多选(完结).zip】

     

 全部源码下载地址:spa

stark组件-1.zip

 

stark组件-2.zip

相关文章
相关标签/搜索