
from flask import Flask
from flask import render_template
from flask_bootstrap import Bootstrap
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")
app = Flask(name)
bootstrap=Bootstrap(app)
app.config['SECRET_KEY'] = 'hard to guess string'
@app.route('/',methods=['GET','POST'])
def name():
name=None
form=NameForm()
if form.validate_on_submit():
name=form.name.data
form.name.data=''
return render_template('name.html',form=form,name=name)
if name == 'main':
app.run()
###########name.html
{% extends "bootstrap/base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
{% block title %}flask-wtf{% endblock %}
{% block body %}
<div class="page-header">
<h1>Hello, {% if name %}{{ name }}{% else %}Stranger{% endif %}!</h1>
</div>
{{ wtf.quick_form(form) }}
{% endblock %}
//或者
<form method="POST">
{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name(id='my-text-field') }}
{{ form.submit() }}
</form>
2、
支持
StringField
TextAreaField
PasswordField
HiddenField
DateField
DateTimeField
IntegerField
DecimalField
FloatField
BooleanField 復(fù)選框
RadioField
SelectField
SelectMultipleField
FileField 文件上傳
SubmitField
FormField
FieldList
3、
驗(yàn)證
Email
EqualTo
IPAddress
Length
NumberRange
Optional
Required 確保有數(shù)據(jù)
Regexp 正則
URL
AnyOf 在值內(nèi)
NoneOf 不在