Python Django 實用小案例2

2022-08-18 10:42:15 字數 1430 閱讀 4479

動態匯入模組

django返回序列化資料

在django裡面,經常會看到一些方法或者類是動態匯入,尤其是以settings檔案為代表,經常把一些類放在裡面動態調配,比如隨便拿django的settings裡面的中介軟體來作為案例。

在pycharm裡面隨便改一下其中一條發現是可以匯入的

那是如何做到實現這樣可配置的動態匯入呢?以在做的乙個cmdb為例。

首先建立乙個config檔案(不寫在settings裡面是為了區分出來,也怕萬一碰巧。。。)

plugins_dict =
config

**通過設定規則動態匯入

for k, v in

config.plugins_dict.items():

#v = 'api.service.asset.handledisk'

module_path, cls_name = v.rsplit('

.', 1)

#module_path = 'api.service.asset'

#cls_name = 'handledisk'

#先動態匯入api.service.asset

#再通過反射去獲取對應的類, cls就是對應的類

cls =getattr(importlib.import_module(module_path), cls_name)

#拿到類可以例項化,這裡因為是靜態方法,所以不需要例項化直接用

response = cls.process(server_obj, server_info, none)

view code

備註一下:列表給字串賦值

通常通過ajax返回給前端的資料都是字典,需要序列化成json資料。正常請看下之前都是這樣寫

另外還需提及的一點是,jsonresponse跟httpresponse的匯入位置不一樣。

在django.shortcuts裡面輸入j提示,在django3.0這個匯入會被移除,確實在http裡面是有更多匯入的,稍微記一下就好了。

C 實用小技巧

系統自帶全球唯一標示id system.guid.newguid tostring 字元竄或者變數前加乙個 標示為路徑 muban.doc 複製檔案 system.io.file.copy 檔案路徑,檔案路徑 刪除檔案 system.io.file.delete 檔案路徑 結束程序 foreach ...

Delphi實用小函式

1.write log entries to file.begin of logger uses sysutils procedure logger msgtext string varflog textfile begin assignfile flog,c test.txt trywriteln...

python實用小知識

python是解釋型語言,你的 在執行時會一行一行地翻譯成cpu能理解的機器碼,這個翻譯過程非常耗時,所以很慢。而c程式是執行前直接編譯成cpu能執行的機器碼,所以非常快 如果字串內部既包含 又包含 怎麼辦?可以用轉義字元 來標識,比如 i m ok 表示的字串內容是 i m ok python還允...