過濾器的本質就是函式,如果在模板中呼叫這個過濾器,那麼就會將這個變數的值作為第乙個引數傳給過濾器函式,然後將函式的返回值作為濾器的返回值
實現乙個把『hello』替換成''的過濾器
也可以改為模板裡面自己設定要替換的內容
實現時間處理過濾器
返回time距離現在的時間是多久
1、如果時間間隔小於1分鐘,就顯示「剛剛」
2、如果時間間隔大於等於1分鐘小於1小時,就顯示「xx分鐘前」
3、如果時間間隔大於等於1小時小於24小時,就顯示「xx小時前」
4、如果時間間隔大於等於24小時小於30天,就顯示「xx天前」
5、否則就顯示具體的時間
""" 返回time距離現在的時間是多久 """
if isinstance(time, datetime):
timestamp = (datetime.now() - time).total_seconds()
if timestamp < 60:
return '剛剛'
elif timestamp >= 60 and timestamp < 60 * 60:
return f'分鐘前'
elif timestamp >= 60 * 60 and timestamp < 60 * 60 * 24:
return f'小時前'
elif timestamp >= 60 * 60 * 24 and timestamp < 60 * 60 * 24 * 30:
return f'天前'
else:
return time.strftime('%y-%m-%d %h:%m')
else:
return time
jinja2變數過濾器
django和flask框架中都使用了jinja2模板引擎來渲染模板,通過後端向模板中傳遞變數,通過過濾器可以修改這些變數,過濾器新增在變數名之後,中間使用豎線分割。例如 把值的首字母轉換為大寫,其他字母轉換為小寫 下表列出jinjia2部分的常用過濾器 過濾器說明 safe 渲染時不轉義 capi...
關於jinja2的 safe 過濾器
原文 沒有接觸過這門語言,不過像很多類似的例子可供參考,如果不對輸入過濾,又恰好滿足某些條件,是很有可能由於惡意輸入導致程式崩潰,甚至使用者資訊流失的。最簡單的例子是輸出html,如果對於某些特殊符號不做轉移,很容易就會被惡意指令碼攻擊了。我猜想這門語言應該對於特定條件下的輸入有自動的過濾 an e...
自定義過濾器
這裡的過濾器的作用主要是在業務邏輯裡面判斷,傳遞的引數是否有誤,然後在實現類裡面去判斷具體的業務資料,執行流程和servlet的過濾器相類似,但是執行時機和作用大不相同,servlet的執行時機是在請求資源,在達到control之前去執行,通過執行鏈,我們的這個過濾器是在control裡,如下.先定...