Python——Flask框架——Web表单
一、框架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>