flask 模板 表單

2021-09-29 17:34:16 字數 3523 閱讀 4274

xss攻擊可以通過過濾器防護,那csrf攻擊呢?所以需要使用flask-wtf表單擴充套件,幫助進行csrf驗證,幫助我們快速定義表單模板,而且可以幫助我們在檢視中驗證表的資料。

pip install flask-wtf
表單前後端驗證都需要自己處理,需要在前端進行確認密碼驗證,後端也要驗證。

字段物件

說明stringfield

文字字段

textareafield

多行文字字段

passwordfield

密碼文字字段

hiddenfield

隱藏文字字段

datefield

文字字段,值為datetime.date格式

datetimefield

文字字段,值為datetime.datetime格式

integerfield

文字字段,值為整數

decimalfield

文字字段,值為decimal.decimal

floatfield

文字字段,值為浮點數

booleanfield

核取方塊,值為true和false

radiofield

一組單選框

selectfield

下拉列表

selectmultiplefield

下拉列表,可選擇多個值

filefield

文字上傳字段

submitfield

表單提交按鈕

formfield

把表單作為字段嵌入另乙個表單

fieldlist

一組指定型別的字段

驗證函式

說明datarequired

確保欄位中有資料

equalto

比較兩個欄位的值,常用於比較兩次密碼輸入

length

驗證輸入的字串長度

numberrange

驗證輸入的值在數字範圍內

url驗證url

anyof

驗證輸入值在可選列表中

noneof

驗證輸入值不在可選列表中

decimalfield

文字字段,值為decimal.decimal

floatfield

文字字段,值為浮點數

booleanfield

核取方塊,值為true和false

radiofield

一組單選框

selectfield

下拉列表

selectmultiplefield

下拉列表,可選擇多個值

filefield

文字上傳字段

submitfield

表單提交按鈕

formfield

把表單作為字段嵌入另乙個表單

fieldlist

一組指定型別的字段

lang

="en"

>

>

charset

="utf-8"

>

>

註冊頁title

>

head

>

>

from flask import flask, render_template, redirect, url_for, session

from flask_wtf import flaskform

from wtforms import stringfield, passwordfield, submitfield

from wtforms.validators import datarequired, equalto

'secret_key']=

"i am the key"

# csrf驗證

# 定義表單的模型類

class

registerform

(flaskform)

:"登錄檔單模型類"

user_name = stringfield(label=

"使用者名稱"

, validators=

[datarequired(

"使用者名稱不能為空")]

) password = passwordfield(label=

"密碼"

, validators=

[datarequired(

"密碼不能為空")]

) password2 = passwordfield(label=

"確認密碼"

, validators=

[datarequired(

"密碼不能為空"

), equalto(

"password"

,"密碼不一致")]

) submit = submitfield(label=

"提交"

)"/register"

, methods=

["get"

,"post"])

defregister()

:# 建立表單物件, 如果是post請求, 前端傳送了資料, flask會將資料儲存到構造的物件中

form = registerform(

)# 判斷form中的資料是否合理

# 如果資料完全滿足則返回真,否則返回假

if form.validate_on_submit():

# 驗證合格,接收資料

uname = form.user_name.data

pwd = form.password.data

session[

"user_name"

]=uname

return redirect(url_for(

"index"))

return render_template(

"register.html"

,form=form)

"/index"

)def

index()

: uname = session.get(

"user_name",""

)return

"使用者:%s 註冊成功"

%uname

if __name__ ==

'__main__'

:true

)

執行截圖:

Flask 表單驗證

安裝拓展 pip3 install i flask wtf使用flask wtf需要配置引數secret key。csrf enabled是為了csrf 跨站請求偽造 保護。secret key用來生成加密令牌,當csrf啟用的時候,該設定會根據設定的密匙生成加密令牌 常用的字段 stringfie...

Flask的表單處理

web 表單是在任何乙個 web 應用程式中最基本的一部分。我們將使用表單允許使用者寫文章,以及登入到應用程式中。乙個名為 flask wtf 的擴充套件,將 wtforms 整合到 flask 程式,可以幫助完成很多事情 表單類表單的建立,可以通過繼承從 flask wtf 匯入的form父類實現...

Flask學習筆記 表單

1.做好準備工作 2.安裝flask wtf flask wtf對wtforms包進行了包裝,很好的整合到flask程式中。在虛擬環境中使用pip工具安裝flask wtf venv pip install flask wtf 3.配置檔案 add more variables here as ne...