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】

     

 所有源碼下載地址:

鏈接: https://pan.baidu.com/s/1USsBvnhG8JR2SuLLrjAwTg
提取碼: dsep

  

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM