一、安裝pip install flask-wtf
二、創建一個flask
的項目引入相對應的包
from flask import Flask,render_template
import flask
#引入模塊
from flask_wtf import FlaskForm,CsrfProtect
#如果輸入的是字符串那麼就用StringField,如果是整數那麼就用IntegerField
from wtforms import StringField,IntegerField
#驗證方式
from wtforms.validators import Length,EqualTo,InputRequired
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
三、配置文件
#coding:utf8
import os
SECRET_KEY = os.urandom(24)
- 1
- 2
- 3
四、配置
import config
app = Flask(__name__)
app.debug = True
app.config.from_object(config)
CsrfProtect(app)
- 1
- 2
- 3
- 4
- 5
五、創建一個驗證的類
class RegistForm(FlaskForm):
username = StringField(validators=[Length(min=3,max=10,message=u"用戶名長度有問題")])
password = StringField(validators=[Length(min=6,max=20)])
age = IntegerField(validators=[InputRequired()])
- 1
- 2
- 3
- 4
六、在路由代碼中使用
@app.route('/',methods=["GET","POST"])
def index():
if flask.request.method == "GET":
return render_template("index.html")
else:
form = RegistForm(flask.request.form)
if form.validate():
username = form.username.data
password =form.password.data
print username,password
return u"登錄成功"
else:
print form.errors
return u"錯誤"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
注意點:創建的驗證類的字段要和前端
html
模板頁面的name
值的一樣的
七、WTForms支持的HTML標準字段
字段類型 說 明
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 一組指定類型的字段
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
八、常見的驗證函數
驗證函數 說 明
Email 驗證電子郵件地址
EqualTo 比較兩個字段的值;常用於要求輸入兩次密碼進行確認的情況
IPAddress 驗證 IPv4 網絡地址
Length 驗證輸入字符串的長度
NumberRange 驗證輸入的值在數字範圍內
Optional 無輸入值時跳過其他驗證函數
Required 確保字段中有數據
Regexp 使用正則表達式驗證輸入值
URL 驗證 URL
AnyOf 確保輸入值在可選值列表中
NoneOf 確保輸入值不在可選值列表中