溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Flask中對參數(shù)進行校驗及WTForms的使用

發(fā)布時間:2021-12-08 15:42:58 來源:億速云 閱讀:887 作者:柒染 欄目:大數(shù)據(jù)

如何在Flask中對參數(shù)進行校驗及WTForms的使用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

一:參數(shù)驗證的必要性

當你處理瀏覽器提交的 POST 帶有參數(shù)的請求時,比如一個用戶注冊的功能,網(wǎng)站都會對用戶提交的密碼長度進行限制。這時候如果視圖函數(shù)中編寫自定義的參數(shù)校驗的時候,視圖代碼很快會變得難以閱讀。

尤其當參數(shù)非常多的時候,代碼會變得更加難以維護。在 Flask 中有一些庫可以簡化這個工作, Wtforms 便是當中非常優(yōu)秀的一個庫,它在 Flask-WTF 的基礎上擴展并加了一些隨手可得的精巧幫助函數(shù),這些函數(shù)將會在應用中讓你事半功倍!

 

二:Wtforms 的使用

2.1 基本使用

我們要使用這個庫,首先需要進行安裝
pip install wtforms
直接貼代碼,感受它的用法,后面我會對代碼關鍵之處進行講解

如何在Flask中對參數(shù)進行校驗及WTForms的使用  
表單函數(shù)

可以看到在表單函數(shù)中注冊的接口有 5 個參數(shù),后面的 StringField 和 PasswordField 代表的是其參數(shù)類型。那么它是怎么對參數(shù)進行驗證的呢?

答案就是 validators 關鍵詞參數(shù),它接收一個數(shù)組。比如上圖代碼 email 參數(shù)是必填的,同時對其長度進行了限制,只支持 6 - 35 位,同時對 password 密碼這個參數(shù)的長度也進行了限制。

細心的你可能也發(fā)現(xiàn)了確認密碼參數(shù) confirmPassword
使用了 EqualTo 驗證函數(shù)來驗證 password 和 confirmPassword兩者是否相同。

通過以上的類,非常簡單就對表單參數(shù)進行了校驗,而不用我們自己去手動編寫函數(shù),對表單參數(shù)一個一個的進行校驗。除了以上參數(shù)類型和驗證函數(shù)之外,Wtforms 還提供許多其他的類型和函數(shù),我們一起來看看!

 
2.4 字段類型

Wtforms 支持的字段類型非常豐富,說明中寫的很詳細了,根據(jù)自己的需求導入即可

如何在Flask中對參數(shù)進行校驗及WTForms的使用  
 
2.3 驗證函數(shù)

WTForms 支持的表單驗證函數(shù)

如何在Flask中對參數(shù)進行校驗及WTForms的使用  
 
2.4 執(zhí)行校驗

前面我們在 RegisterForm 類中定義了字段及驗證,那么我們?nèi)绾卧谝晥D函數(shù)中使用呢?

如何在Flask中對參數(shù)進行校驗及WTForms的使用  
視圖

很簡單,導入剛才定義的 form 表單,然后調(diào)用其驗證函數(shù) validate() 執(zhí)行校驗即可,它返回的是一個布爾值。所以只需對其進行判斷就完事了!

看完上述內(nèi)容,你們掌握如何在Flask中對參數(shù)進行校驗及WTForms的使用的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI