zoukankan      html  css  js  c++  java
  • WTForms基本知识

    WTForms支持的HTML标准字段
    字段对象                  描述

    StringField               文本字段

    TextAreaField          多行文本字段

    PasswordField          密码文本字段

    HiddenField              隐藏文件字段

    DateField                 文本字段,值为 datetime.date 文本格式

    DateTimeField           文本字段,值为 datetime.datetime 文本格式

    IntegerField               文本字段,值为整数

    DecimalField             文本字段,值为decimal.Decimal

    FloatField                   文本字段,值为浮点数

    BooleanField              复选框,值为True 和 False

    RadioField                  一组单选框

    SelectField                 下拉列表

    SelectMutipleField      下拉列表,可选择多个值

    FileField                     文件上传字段

    SubmitField               表单提交按钮

    FormField                  把表单作为字段嵌入另一个表单

    FieldList                     一组指定类型的字段

    WTForms常用验证函数
    验证函数                                            描述

    DataRequired                                     确保字段中有数据

    EqualTo                                              比较两个字段的值,常用于比较两次密码输入

    Length                                                 验证输入的字符串长度

    NumberRange                                    验证输入的值在数字范围内

    URL                                                    验证URL AnyOf 验证输入值在可选列表中

    NoneOf                                                验证输入值不在可选列表中

    CSRF_ENABLED是为了CSRF(跨站请求伪造)保护。 SECRET_KEY用来生成加密令牌,当CSRF激活的时候,该设置会根据设置的密匙生成加密令牌。

    使用 Flask-WTF 需要配置参数 SECRET_KEY

    创建表单模型类代码:

    # coding:utf-8
    from flask import Flask, render_template, url_for, redirect, Response
    from flask_wtf import FlaskForm
    # flask_wtf是基于wrforms的,所以下载flask_wtf时就带有了
    from wtforms import StringField, PasswordField, SubmitField
    from wtforms.validators import DataRequired, EqualTo
    
    app = Flask(__name__)
    
    
    # 定义表单的模型类
    class RegisterFrom(FlaskForm):
    # 名字 验证器/验证器 数据为空时返回信息
    user_name = StringField(label=u"用户名", validators=[DataRequired(u"用户名不能为空!")])
    password = PasswordField(label=u"密码", validators=[DataRequired(u"密码不能为空!")])
    password2 = PasswordField(label=u'确认密码', validators=[DataRequired(u"确认密码不能为空!"),
    EqualTo('password', u"两次密码不一致!")])
    submit = SubmitField(label=u"提交")
    
    
    # 使用 Flask-WTF 需要配置参数 SECRET_KEY
    app.secret_key = "reknfknfkefsfsfe"
    
    
    @app.route("/register", methods=["GET", "POST"])
    def register():
    # 创建form对象,如果是post请求,前端发送数据,flask会把数据在构造form对象时,存放到对象中
    form = RegisterFrom()
    # 如果表单模型类中的数据完全满足所有的验证器(数据不出错),则返回True,否则False
    if form.validate_on_submit():
    username = form.user_name.data
    pwd = form.password.data
    pwd2 = form.password2.data
    print(username, pwd, pwd2)
    return redirect(url_for("index"))
    return render_template('register.html', form=form)
    
    
    @app.route("/index")
    def index():
    return "Success"
    
    
    if __name__ == '__main__':
    app.run()
    模板代码:
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <form method="post">
    {{ form.csrf_token }}
    {{ form.user_name.label }}
    {{ form.user_name }}<br>
    {% for msg in form.user_name.errors %}
    <p>{{ msg }}</p>
    {% endfor %}
    
    {{ form.password.label }}
    {{ form.password }}<br>
    {% for msg in form.password.errors %}
    <p>{{ msg }}</p>
    {% endfor %}
    
    {{ form.password2.label }}
    {{ form.password2 }}<br>
    {% for msg in form.password2.errors %}
    <p>{{ msg }}</p>
    {% endfor %}
    
    {{ form.submit }}
    </form>
    </body>
    </html>
  • 相关阅读:
    Win10开始菜单中的天气不更新问题的解决方法
    Visual Studio 2017 的 JavaScript 调试功能的关闭
    Win10安装bash慢的解决方案
    关于 Google Chrome “Your connection is not private” 问题的处理
    关于 Inno Setup 报木马的问题处理
    Windows防火墙出站、入站相关知识总结
    关于Navicat Premium导入xlsx的问题
    关于VIM在Win10下的无意义折腾
    Mindjet MindManager 2016/2017 折腾记录
    2019腾讯前端技术大会资源TWeb
  • 原文地址:https://www.cnblogs.com/lyxcode/p/12298178.html
Copyright © 2011-2022 走看看