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执行的代码向 “某个神奇的地方” 放入了一些值。之后的路由加载时,可以去“某个神奇的地方”读取到原来设置的值。
    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 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+)/
    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】

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

     

 所有源码下载地址:

1
2
链接: https://pan.baidu.com/s/1USsBvnhG8JR2SuLLrjAwTg
提取码: dsep

  

 

 

 

 

 

 

 

 

 

 

posted @   武沛齐  阅读(6782)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
历史上的今天:
2012-11-18 命名规则
2012-11-18 公共Webservice
点击右上角即可分享
微信分享提示