介紹:
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. 對以上的三張表做增刪改查
- 功能分析
- 為每張表創建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+)/
- 為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