當前位置:
首頁 > 知識 > 寫Flask 應用時的一些優雅技巧

寫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:編程派 |