安裝Flask-WTF
pip install Flask-WTF
目錄結構
Flask_WTF.py
from flask import Flask,render_template,request,flash
#導入wtf擴展的表單類
from flask_wtf import FlaskForm
#導入自定義表單需要的字段
from wtforms import SubmitField,StringField,PasswordField
#導入wtf擴展提供的表單驗證器
from wtforms.validators import DataRequired,EqualTo
#解決編碼問題
import importlib,sys
importlib.reload(sys)
app = Flask(__name__)
app.secret_key = 'itheima'
#自定義表單類,文本字段,密碼字段,提交按鈕
class LoginForm(FlaskForm):
username = StringField('用戶名:',validators=[DataRequired()])
password = PasswordField('密碼:',validators=[DataRequired()])
password2 = PasswordField('確認密碼:',validators=[DataRequired(),EqualTo('password','密碼填寫的不一致')])
submit = SubmitField('提交')
#定義根路由試圖函數,生成表單對象,獲取表單數據,進行表單數據驗證
@app.route('/form',methods=['GET','POST'])
def login():
login_form = LoginForm()
#1.判斷請求方式
if request.method == 'POST':
#2.獲取請求的參數
username =request.form.get('username')
password =request.form.get('password')
password2 =request.form.get('password2')
# 3.調用validation_on_submit方法,可以一次性執行完所有驗證函數的邏輯
if login_form.validate_on_submit():
return 'success'
else:
flash('參數有誤')
return render_template("index.html",form = login_form)
if __name__ == '__main__':
app.run(debug=True,port=5111)
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post">
{{ form.csrf_token() }}
{{ form.username.label }}{{ form.username }}<br>
{{ form.password.label }}{{ form.password }}<br>
{{ form.password2.label }}{{ form.password2 }}<br>
{{ form.submit }}
</form>
</body>
</html>
效果:
點擊提交按鈕:
WTForms包也包含驗證器類。它對錶單字段應用驗證很有用。以下列表顯示了常用的驗證器。
驗證器類 | 描述 |
---|---|
DataRequireed | 確保字段中有數據 |
EnqualTo | 比較兩個字段的值,常用於比較兩次密碼輸入 |
Length | 驗證輸入的字段長度 |
NumberRange | 驗證輸入的值在數字範圍內 |
URL | 驗證URL |
AnyOf | 驗證輸入值在可選列表中 |
NoneOf | 驗證輸入值不在可選列表中 |
WTforms包中包含各種表單字段的定義。下面列出了一些標準表單字段
記一些錯誤:
1、解決python的編碼問題
python2的解決方法
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
python3的解決方法
import importlib,sys
importlib.reload(sys)
2、安裝Flask-WTF遇到的問題:AttributeError: module ‘pip’ has no attribute ‘main’
降級pip的版本:
python -m pip install --user --upgrade pip==9.0
這是根據黑馬程序員的一門Flask課程記錄的筆記。
視頻地址:6節課入門Flask框架web開發視頻