1.bootstrap安装
1 
  | pip install flask-bootstrap 
  | 
 
2.初始化bootstrap
1 2 3 
  | from flask_bootstrap import Bootstrap ... bootstrap = Bootstrap(app) 
  | 
 
3.制作自己的基模板
初始化bootstarp以后就可以继承bootstrap文件的基模板了
1 2 3 
  | {% extends "bootstrap/base.html" %} {% block title %}Flasky{% endblock %} ... 
  | 
 
主要用Flask-WTF包
Flask-WTF是wtforms的一个扩展,两个包都要引入。
5.设置SCRF保护
1 2 
  | app = Flask(__name__) app.config['SECRET_KEY'] = 'hard to guess string' 
  | 
 
跟django的套路差不多,都要继承一个Form父类,
1 2 3 4 5 6 
  | from flask_wtf import Form from wtforms import StringField, SubmitField from wtforms.validators import Required class NameForm(Form): 	name = StringField('What is your name?', validators=[Required()])     submit = SubmitField('Submit') 
  | 
 
7.模板
可以直接写html
1 2 3 4 5 
  | <form method="POST"> {{ form.hidden_tag() }} {{ form.name.label }} {{ form.name() }} {{ form.submit() }} </form> 
  | 
 
或者直接用Flask-bootstrap的辅助函数一次生产这个form
1 2 
  | {% import "bootstrap/wtf.html" as wtf %} {{ wtf.quick_form(form) }} 
  | 
 
8.处理表单
1 2 3 4 5 6 7 8 
  | @app.route('/', methods=['GET', 'POST']) def index():     name = None     form = NameForm()     if form.validate_on_submit():         name = form.name.data         form.name.data = ''     return render_template('index.html', form=form, name=name) 
  | 
 
methods里面加入POST请求。如果没有指定,只能路由GET请求。
如果提交的数据通过验证,则validate_on_submit返回True,把name字段清空,并且把数据传到模板里面去。