flask-wtf拓展是flask的乙個模組,用於處理web表單。web表單用於通過http get或http post請求向服務端提交資料。flask-wtf擴充套件的主要功能如下:
1. 生成表單元件的html**
2. 後台驗證
3. 向web端返回錯誤資訊
4. 在web頁面上顯示錯誤資訊
5. 防止跨域訪問
使用flask-wtf之前需要在執行環境下安裝:
因為我用的是anaconda建立的虛擬環境,所以開啟anaconda prompt 後先開啟虛擬環境,再進行安裝
flask-wtf擴充套件的核心功能之一就是用於校驗表單提交的資料。在
flask-wtf擴充套件中將乙個表單對映成乙個flaskform類,可以將這個類
稱為表單類。該類擁有生成表單**、校驗表單資料等功能。
下面的**是用於對映表單的myform類,該類從flaskform 繼承,並且定義了兩個文字輸入元件和乙個提交按鈕元件。
class
myform
(flaskform)
: name=textfield(..
.)country=textfield(..
.)submit=submitfield(..
.)
每乙個元件類都需要為構造方法傳入引數。
flask_form.py
from flask import flask,request,render_template
from flask_wtf import flaskform
from wtforms import textfield,submitfield,validators
'sdlkajdj45'
###用於session/cookie/flask-wtf的csrf保護等加密的金鑰,金鑰可隨意指定,就是乙個普通的字串
#定義表單類
class
contactform
(flaskform)
:#用於輸入文字的字段,其中validators.required是乙個校驗器,表示該欄位必須輸入
firstname=textfield(
'姓名'
,[validators.required(
'姓名必須輸入')]
) submit=submitfield(
'提交'
)##用於處理get和post請求的路由函式
'/',methods=
['get'
,'post'])
defcontact()
: form=contactform(
)#只處理post請求
if request.method==
'post'
:#校驗表單資料
if form.validate_on_submit()==
false
:print
(form.firstname.errors)
print
('error'
)#將校驗結果和表單**返回客戶端
return render_template(
'first.txt'
,form=form)
if __name__==
"__main__"
:)
first.txt
'utf-8'
>
flask-wtf模組<
/title>
<
/head>
-輸出與firstname欄位相關的錯誤資訊-
->
}-定義表單-
-生成用於儲存加密字串的隱藏文字元件-
->
}-生成文字元件的標籤名稱的**-
->
}-生成文字元件的**-
->
}->
}<
/fieldset>
<
/form>
<
/body>
<
/html>
Flask中整合的web表單處理
為什麼使用flask wtf?request物件公開了所有客戶端傳送的請求資訊。特別是request.form可以訪問post請求提交的表單資料。儘管flask的request物件提供的支援足以處理web表單,但依然有許多任務會變得單調且重複。表單的html 生成和驗證提交的表單資料就是兩個很好的例...
Flask學習筆記2 Web表單
web表單是web應用程式的基本功能。它是html頁面中負責資料採集的部件。表單有三個部分組成 表單標籤 表單域 表單按鈕。表單允許使用者輸入資料,負責html頁面資料採集,通過表單將使用者輸入的資料提交給伺服器。在flask中,為了處理web表單,我們一般使用flask wtf擴充套件,它封裝了w...
Flask處理Web表單的實現方法
web表單是web應用程式的基本功能。它是html頁面中負責資料採集的部件。表單有三個部分組成 表單標籤 表單域 表單按鈕。表單允許使用者輸入資料,負責html頁面資料採集,通過表單將使用者輸入的資料提交給伺服器。在flask中,為了處理web表單,我們一般使用flask wtf擴充套件,它封裝了w...