在flask中创建表单。

# coding:utf8
from flask import render_template


from flask.ext.wtf import FlaskForm
from wtforms import *
from wtforms.validators import  DataRequired,EqualTo

"""
flask_WTF表单: 通过字段的方式显示界面,通过函数验证表单中的值
 好处: 维护更加方便, 提供csrf验证

使用流程:
1. 属于flask中的扩展包,需要安装
2. 定义类,继承自FlaskForm
3. 在类中编写字段,编写函数验证字段
4. 创建表单类,渲染到页面中

注意点:
1. wtform表单提供了csrf验证机制
2. csrf_token的生成依赖SECRET_KEY
3. 通过validate_on_submit验证字段中的验证信息,会对'POST', 'PUT', 'PATCH', 'DELETE'提交方式校验
4. 获取表单中内容的方法: form.字段.data
"""""
from flask import Flask
app=Flask(__name__)

app.config['SECRET_KEY']='jdlfsdp'
class Myform(FlaskForm):
    username=StringField(u'用户名',validators=[DataRequired()])
    password = PasswordField(u'密码', validators=[DataRequired()])
    repassword = PasswordField(u'确认密码', validators=[DataRequired(), EqualTo('password')])
    submit = SubmitField(u'提交')

@app.route('/')
def index():
    form=Myform()
    return render_template('index03.html',form=form)

@app.route('/register',methods=['POST']) #这个methods=['POST'] 千万不能漏
def register():
    # 1.获取参数
    form = Myform()
    # 1.获取参数

    # 2.校验参数, validate_on_submit验证字段中的验证信息
    if form.validate_on_submit():
        username = form.username.data
        password = form.password.data
        repassword = form.repassword.data

        print username
        print password
        print repassword

        return '成功'
    return '失败'
if __name__ == '__main__':
    app.run(debug=True)

在创建表单的时候,我们应该知道,在程序中创建密钥。
app.config['SECRET_KEY']='jdlfsdp' ,用来生成session的,这个session对于form的表单的生成有重要影响。
同时在是生成表单时,,要记得写上{{ form.csrf_token }}。才能有效。




    
    Title


{{ form.csrf_token }} {{ form.username.label }} {{ form.username }} {{ form.password.label }} {{ form.password }} {{ form.repassword.label }} {{ form.repassword }} {{ form.submit }}

你可能感兴趣的:(在flask中创建表单。)