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