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

相關文章
相關標籤/搜索