前記:django的orm、模組有很多函式細節,要學會多看文件學習函式的細節簡言之,annotate()得到的是查詢集,類似all(),只不過多了一列屬性,annotate()新增的,例如統計每個出版社有多少本書(書外來鍵到出版社),但是統計書的單價總和,用annotate()會給每個書記錄加個總和屬性,此時不如使用aggregate(),aggregate()可以配合sum()等方法直接得出乙個字典,裡面是key-value。
當django聚合annotate或者aggregate時取出字典值。
聚合annotate()後[0]可能報錯,aggreagate()的取值也可能none,if not a:a = 0,也可以.get(a,0)。
基於當前取出上個月年月
import arrow
arrow.now().shift(months=-1).strftime('%y-%m')
django的values()和distinct()實現了對values()中的值去重
json資料標準字串是雙引號,平時寫字串盡量雙引號
django的form校驗可以寫校驗器,一些校驗的邏輯可以不寫在試圖函式
在python的loggin模組中,主要包含四大金剛:
loggers:記錄器
hanglers:處理器
filters:過濾器
formatters:格式化器
loggins模組定義了日誌級別,按時間嚴重程度由低到高排列,全部是大寫,因為它們是常量:
級別級別數值
使用時機
debug
10詳細資訊,常用於除錯
ingo
20程式正常執行過程中產生的一些資訊
warning
30警告使用者,雖然程式還在正常工作,但有可能發生錯誤
error
40由於更嚴重的問題,程式已不能執行一些功能了
critical
50嚴重錯誤,程式已不能繼續執行
正向查詢(通過字段),反向查詢(通過表名),同樣道理,科學 上網是正向**,nginx是反向**
django專案細節
1.post請求要帶上 2.python同時判斷多個值使用all 裡面用列表括起來 3.django內建使用者,可以直接呼叫create user 4.如果不能保證配置的正確,先將各種路徑寫為絕對路徑 5.重定向 反向解析 6.判斷郵箱的正規表示式 a z0 9 w a z0 9 a z 7.將乙個...
Django學習小記 CBV
乙個url除了對應函式外,還能對應乙個類 view.py 例如 from django.views import view 繼承它 class login view defget self,request pass defpost self,request pass urlpatterns path...
django專案細節(4)
1.訪問的頁面事先需要登入的話,使用login request裝飾器。該裝飾器當你沒有登入時訪問頁面,就會重定向到setting.py中的login url配置的頁面,然後記錄下的的請求,登入成功之後自動跳轉到之前請求的頁面。可以用乙個類封裝。2.當你訪問乙個頁面時,django會自動判斷使用者是否...