寫Flask 應用時的一些優雅技巧
作者:Vimiix
藉助findmodules,importstring優雅地註冊藍圖模塊
使用Flask中的flash快閃記憶體傳遞反饋信息
使用Flask中內置日誌系統發送錯誤日誌郵件
提前中斷請求返回錯誤碼,並定製相應錯誤頁面
藉助 , 優雅地註冊藍圖模塊
, 這兩個函數包含在 工具包中,藉助著兩個工具函數可以幫助我們在更優雅的給應用註冊 模塊,尤其是當項目中 模塊很多的時候,會節省很多行代碼,看起來更加的舒服。
importstring(importname, silent=False)
import_string 可以通過字元串導出需要導入的模塊或對象:
參數
import_name:要導入的對象的模塊或對象名稱
silent:如果設置為True,則忽略導入錯誤,相反則返回None
findmodules(importpath, include_packages=False, recursive=False)
找到一個包下面的所有模塊,這對於自動導入所有藍圖模塊是非常有用的
參數
import_path:包路徑
include_packages:如果設置為True,會返回包內的子包
recursive:是否遞歸搜索子包
示例代碼
blueprints/example.py
app.py
使用Flask中的flash快閃記憶體傳遞反饋信息
flask的快閃記憶體系統主要是用來想用戶提供反饋信息。內容一般是對用戶上一次請求中的操作給出反饋。反饋信息存儲在服務端,用戶可以在本次(且只能在本次)請求中訪問上一次的反饋信息,當用戶獲得了這些反饋信息以後,就會被服務端刪除。Flask為jinja2開放了一個 函數來獲取上一次的快閃記憶體信息,這個函數可以直接在模板中使用。
參數
with_categories:True返回元祖,False返回消息本身
category_filter:過濾分類關鍵詞(字元串或列表)
後台當請求結束準備返回的時候,使用 函數來為下次請求保存一條反饋信息。
參數
message:信息文本
category:自定義分類關鍵詞
官方示例代碼]6
使用Flask中內置日誌系統發送錯誤日誌郵件
Flask使用python內置的日誌系統,它實際上可以發送錯誤郵件。
示例代碼:
還可以更進一步,將錯誤日誌格式化,方便閱讀:
關於SMTPHandler的介紹,訪問官網SMTPHandler手冊
提前中斷請求返回錯誤碼,並定製相應錯誤頁面
在Flask中我們能夠用 函數重定向用戶到其它地方。還能夠用 函數提前中斷一個請求並帶有一個錯誤代碼。
示例代碼
配合Flask提供的 裝飾器定製自己的相應錯誤界面
注意到 是在 調用之後。告訴 Flask 該頁的錯誤代碼應是 , 即沒有找到。
題圖:pexels,CC0 授權。


※三問 Python:能幹什麼?為什麼火?會繼續火嗎?
※用 Scikit-learn與Pandas 進行線性回歸預測
TAG:編程派 |