Flsk中扩展Flask-WTF对表单类进行了封装,我们通过继承Flask-WTF扩展中的FlaskForm基类,可以定义自己的表单类,类中每一个属性对应一个表单中的元素,如下面的类,我们定义了一个含有文本框和提交按钮的表单类:
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField
from wtforms.validators import Required
class NameForm(FlaskForm):
name=StringField('your name',validators=[Required()])
submit=SubmitField('Submit')
这样我们就定义了一个名叫NameForm的表单类,包含两个元素:一个叫做name的文本框和一个叫做submit的提交按钮.validators表示验证器,后面可以增加一些对用户输入的限制,如上述Required()的意思就是该文本框中必须填入数据。验证器还有很多种,比如用来检查是否是email的Email()、用来比较两个值的EqualTo()。
对应的在html文档中,我们可以这样使用form:
<form method="POST">
{{form.hidden_tag()}}
{{form.name.label}}{{form.name()}}
{{form.submit }}
</form>
我们在视图函数中这样进行渲染:
@app.route('/', methods=['GET','POST'])
def index():
form=NameForm()
return render_template('index.html',form=form)
运行效果如下:
Github位置:
https://github.com/HymanLiuTS/flaskTs
git clone git@github.com:HymanLiuTS/flaskTs.git
获取本文源代码:
git checkout FL16