您好,登錄后才能下訂單哦!
如何在Flask中對參數進行校驗及WTForms的使用,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一:參數驗證的必要性
當你處理瀏覽器提交的 POST 帶有參數的請求時,比如一個用戶注冊的功能,網站都會對用戶提交的密碼長度進行限制。這時候如果視圖函數中編寫自定義的參數校驗的時候,視圖代碼很快會變得難以閱讀。
尤其當參數非常多的時候,代碼會變得更加難以維護。在 Flask 中有一些庫可以簡化這個工作, Wtforms 便是當中非常優秀的一個庫,它在 Flask-WTF 的基礎上擴展并加了一些隨手可得的精巧幫助函數,這些函數將會在應用中讓你事半功倍!
我們要使用這個庫,首先需要進行安裝
pip install wtforms
直接貼代碼,感受它的用法,后面我會對代碼關鍵之處進行講解
可以看到在表單函數中注冊的接口有 5 個參數,后面的 StringField 和 PasswordField 代表的是其參數類型。那么它是怎么對參數進行驗證的呢?
答案就是 validators 關鍵詞參數,它接收一個數組。比如上圖代碼 email 參數是必填的,同時對其長度進行了限制,只支持 6 - 35 位,同時對 password 密碼這個參數的長度也進行了限制。
細心的你可能也發現了確認密碼參數 confirmPassword
使用了 EqualTo 驗證函數來驗證 password 和 confirmPassword兩者是否相同。
通過以上的類,非常簡單就對表單參數進行了校驗,而不用我們自己去手動編寫函數,對表單參數一個一個的進行校驗。除了以上參數類型和驗證函數之外,Wtforms 還提供許多其他的類型和函數,我們一起來看看!
Wtforms 支持的字段類型非常豐富,說明中寫的很詳細了,根據自己的需求導入即可
WTForms 支持的表單驗證函數
前面我們在 RegisterForm 類中定義了字段及驗證,那么我們如何在視圖函數中使用呢?
很簡單,導入剛才定義的 form 表單,然后調用其驗證函數 validate() 執行校驗即可,它返回的是一個布爾值。所以只需對其進行判斷就完事了!
看完上述內容,你們掌握如何在Flask中對參數進行校驗及WTForms的使用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。