详细文档
使用例子:
from flask import Flask,redirect,url_for,render_template,session,flash
from flask_bootstrap import Bootstrap
from flask_wtf import FlaskForm
from wtforms import StringField,SubmitField
from wtforms.validators import Required
app=Flask(__name__)
bootstrap=Bootstrap(app)
app.config['SECRET_KEY']='huu cool'
#表示一个<form>表单,类变量表示表单的元素
class NameForm(FlaskForm):
#vilators可以指定验证函数组成的列表
name=StringField('你叫什么名字?',validators=[Required()])
submit=SubmitField('告诉我')
@app.route('/',methods=['POST','GET'])
def index():
form=NameForm()
if form.validate_on_submit():
old_name=session.get('name')
if old_name is not None and old_name != form.name.data:
flash('Look like you have changed your name')
session['name']=form.name.data
return redirect(url_for('index'))
return render_template('index.html',form=form,name=session.get('name'))
if __name__ == '__main__':
app.run()
渲染表单的模板:
#templates/index.html#
{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title%} Hello {% endblock %}
{%block content%}
<div class="container">
{%if name%}Hello {{name}} ! {%else%} Hello Stranger! {%endif%}
#flash信息显示
{% for message in get_flashed_messages() %}
<div class="alert alert-warning">
<button type="button" class="close" data-dismiss="alert">×</button>{{message}}
</div>
{% endfor %}
#flask_bootstrap快速渲染
{{wtf.quick_form(form)}}
#手动渲染
<!-- <form method="POST">
{{form.hidden_tag()}}
{{form.name.label}}{{form.name()}}
{{form.submit()}}
</form> -->
</div>
{%endblock%}