標籤:效果 合成 request 前端 blog 執行檔案 font 儲存 foo
Django Admin 是對model中 對應的資料表進行增刪改查的組件,對每個APP下面登入的model表進行增刪改查。而stark組件仿照Admin組件開發。
Admin的常用配置:
Filedstes
使用方法和效果如
Action
使用方法和
需要在My_AppConfig(admin.ModeAdmin)中編寫自訂函數
需要注意的:(1)該函數在select下拉框中 作為value值
(2)該函數有兩個參數,分別是request、queryset
(3)前端的複選框,前端整合成一個字典。字典的鍵:複選框的name,字典的值:清單類型,儲存valu
定義的foo會在前端action的select 下拉框,函數名當作value值
點擊go ,根據select下拉框中的
value,值,就是剛才
定義的函數名發送後端,後端拿到這個值,找到這個函數並執行。
Admin 的使用兩個情境:
1)admin 配置url
2)註冊model
注意:每個APP下有個admin模組
使用流程
1、當django項目啟動時,admin應用首先掃描(載入)每個APP下面的每個admin.py 檔案
自執行函數,autodiscover()執行掃描,掃描
2、每個admin檔案匯入admin模組時,產生site對象、
注意:admin.site.registry(Book),註冊時,_registry{}字典儲存的鍵是model 中的類名,值是model的管理類的AdminClass類
3、使用site對象註冊model 中的類名
4、產生登入model類的增刪改查url
知識點:
1、同一模組重複調用,檔案只載入一次
2、基於模組的單例模式,第一次產生對象時,會產生一個記憶體空間_instance,當第二次產生時,_instance有值,會把該對象的記憶體指向上一次對象的記憶體空間
路由分發
一條url有正則和相對應的函數組成,路由分發則是把對應的函數轉變成一個元組。元組包括一個列表,和兩個None值
仿照admin開發的過程中,目的是產生model對應的url,需要擷取該model所在APP的名字和mode的名字.
使用my_model._meta.model_name 擷取
自訂stark組件仿照admin:注意,在stark apps.py 設定檔中的類中,增加一個函數
def ready(self): autodiscover_modules("stark_admin")
該函數的意義:——執行檔案下的read方法——掃描startk檔案
注意:static 放在項目下面,需配置staticfiles 放在應用下面,無須配置。django掃描每個項目下面的static檔案
request 請求:請求的url ,可以使用request.GET擷取資料
2、
python Stark 組件