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】

 所有源码下载地址:

stark组件-1.zip

 

stark组件-2.zip

原文地址:https://www.cnblogs.com/shuai1991/p/10815046.html

时间: 2024-08-29 10:49:42

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

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

上一节中讲的SIP组件,即GBT28181SipComponent动态.so库工程,生成libGBT28181SipComponent.so库文件和IGBT28181Comm.h编程接口,在该库中实现了REGISTER, MESSAGE,NOTIFY,SUBSCRIBE,INVITE,ACK,BYE,CALL_MESSAGE等GB/T28181-2011 <安全防范视频监控联网系统信息传输.交换.控制技术要求>要求的SIP方法, 后期有新的需求可以添加.该库已经成功用于电网的多家视频安防企业中

CRM项目之stark组件(1)

admin组件 admin组件的简单使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'djan

使用自己的stark组件实现crm系统

因为stark用到了templates里面的html页面文件,所以要整合在一个app里,在stark里面创建名字为templates的Python Package,将之前的html页面拷贝在stark组件里面的templates里面,然后拷贝stark组件 二.实现crm逻辑 CRM即客户关系管理,是指企业用CRM技术来管理与客户之间的关系 1.创建数据库 在app01应用下的models.py文件: from django.db import models class Department(m

crm 使用stark组件

# Create your models here. from django.db import models class Department(models.Model): """ 部门表 市场部 1000 销售 1001 """ title = models.CharField(verbose_name='部门名称', max_length=16) code = models.IntegerField(verbose_name='部门编号',

crm——stark组件核心原理

关于stark组件的简要介绍: 启动后.路由加载前定制一段代码. a. 创建一个 stark  app 组件 b. 编写ready方法 1 from django.apps import AppConfig 2 3 4 class StarkConfig(AppConfig): 5 name = 'stark' 6 7 def ready(self): 8 from django.utils.module_loading import autodiscover_modules 9 # 当程序启动

第二篇 SQL Server代理作业步骤和子系统

本篇文章是SQL Server代理系列的第二篇,详细内容请参考原文. SQL Server代理作业由一系列的一个或多个作业步骤组成.一个作业步骤分配给一个特定的作业子系统(确定作业步骤去完成的工作).每个作业步骤运行于一个单独的安全上下文,尽管每个作业有一个所有者来决定谁可以修改作业.本篇主要关注组成SQL Server代理的作业步骤和子系统.快速回顾作业理解SQL Server代理作业的最佳方式是把相关联的 需要完成给定任务 的组件放在一个容器中.作业最主要的组件有作业步骤.计划.警告和通知.

第二篇 Replication:分发服务器的作用

本篇文章是SQL Server Replication系列的第二篇,详细内容请参考原文. 分发服务器是SQL Server复制的核心组件.分发服务器控制并执行数据从一个服务器移动到另一个服务器的进程.它将发布和订阅的信息存储在分发数据库.几个代理促进真实数据的移动.术语在这一系列你会看到"分发服务器","发布服务器","订阅服务器".They always refer to a SQL Server instance together with

命令模式第二篇

命令模式第一篇中把问题简化成一个遥控器,它只有一个按钮和对应的插槽,可以控制一个装置. 根据需求,现在有7个插槽,每个插槽都有一个开和关按钮,可以控制一个装置.只需将远程控制 对象中的单个命令组件换成命令组件数组即可.再加一个控制整个装置的撤销按钮. 实现代码如下: public interface Command { public void execute(); public void undo();} public class GargeDoorCloseCommand implements

webIDE 第二篇博文

这是我做webIDE过程中的第二篇博文,之所以隔了这么长时间没更,因为确实是没有啥进度啊,没什么可写的,现在虽然依然没啥进度,但中途遇到很多坑,这些坑还是有记录下来的必要的. 因个人水平问题,可能有的地方说的不对,或者实现思路有问题,欢迎指正.thanks 经过我们不断地项目迭代.拆分,将其分为三部分,左侧目录树.右侧上部tabs.右侧下部coding区,分别用三个组件实现各自功能. 刚开始,我用elementUI的fileTree做文件树->fi'lder组件.tabs做上部tabs->ta