flask專案Web表單 1

2021-10-02 07:36:58 字數 2166 閱讀 2992

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...