在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 }}。才能有效。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/register" method="post"> 

    {{ form.csrf_token }}

    {{ form.username.label }}
    {{ form.username }}

    {{ form.password.label }}
    {{ form.password }}

    {{ form.repassword.label }}
    {{ form.repassword }}

    {{ form.submit }}

</form>
</body>
</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值