一、框架Flask-WTF
安裝: pip install flask-wtf
需要程序設置一個密鑰
app = Flask(__name__) app.config['SECRET_KEY'] = 'hard to geuss string'
二、表單
(1)實例Web表單,包含一個文本字段和一個提交按鈕
from flask.ext.wtf import Form from wtforms import StringField,SubmitField from wtforms.validators import Required class NameForm(Form): #name的一段文本文字 name = StringField('What is you name?',validator = [required()]) #一個名為Submit的按鈕 submit = SubmitField('Submit')
(2)WTForms支持的HTML字段
| 字段類型 | 說明 |
| StringField | 文本字段 |
| TextAreaField | 多行文本字段 |
| PasswordField | 密碼文本字段 |
| HiddenField | 隱藏文本字段 |
| DateField | 文本字段,格式為datetime.data |
| DateTimeField | 文本字段,格式為datetime.,datetime |
| IntegerField | 文本字段,值為整數 |
| DecialField | 文本字段,decimal.Decimal |
| FloatField | 文本字段,值為浮點數 |
| BooleanField | 復選框,值為True和False |
| RadioField | 一組單選框 |
| SelectField | 下拉列表 |
| SelectMultipeField | 下拉列表,可以選擇多個值 |
| FileField | 文件上傳 |
| SubmitField | 提交按鈕 |
| FormField | 吧表單作為字段嵌入另一個表單 |
| FieldList | 一組指定類型的字段 |
(3)WTForms驗證函數
| 函數 | 說明 |
| 驗證電子郵件地址 | |
| EqualTo | 比較兩個字段值 |
| IPAddress | 驗證網絡地址 |
| Length | 驗證字符串長度 |
| NumberRange | 驗證輸入值是否在數字范圍內 |
| Optional | 無輸入值跳過其他驗證函數 |
| Required | 確保字段中有數據 |
| Regexp | 使用正則表達式驗證輸入值 |
| URL | 驗證URL |
| AnyOf | 確保輸入值在可選擇值列表中 |
| NoneOf | 確保輸入值不可再可選值列表中 |
(4)將表單渲染成HTML
{% import "bootstrao/wtf.html" as wtf %}
{{wtf.quick_form(form)}}
**在視圖函數中處理表單 form = NameForm()
(5)Flask消息——使用flash()函數
flash('Looks like you hanve changed your name!')
在模板中渲染函數
{% for message in get_flashed_messages() %}
<dic class="alert-warning">
<button type="button" class="close" data-dismiss="alert">%times;</button>
{{message}}
</div>
