zoukankan      html  css  js  c++  java
  • 使用 WTForms 进行表单验证的例子

    #使用 WTForms 进行表单验证的例子
    
    from wtforms import Form
    from wtforms import BooleanField
    from wtforms import TextField
    from wtforms import PasswordField
    from wtforms import validators
    
    #注册表单
    class RegisterForm(Form):
        username = TextField("Username",[validators.length(min=4, max=25)])
        email = TextField("Email Address", [validators.length(min=6, max=25)])
        password = PasswordField("New Password", [validators.Required(), validators.EqualTo("confirm", message="Passwords must match")])
        confirm = PasswordField("Repeat Password")
        accept_tos = BooleanField("I accept the TOS", [validators.Required()])
    
    
    #视图函数
    @app.route("/register", methods=["GET", "POST"])
    def register():
        form = RegisterForm(request.form)
        if request.method == "POST" and form.validate():
            user = User(form.username.data, form.email.data, form.password.data)
            db_session.add(user)
            flash("Thanks for registering")
            return redirect(url_for("login"))
        return rendertemplate("regiser.html", form=form)
    #备忘表
    # 1、如果数据是以POST方式提交的,那么基于请求的form属性的值创建表单,反过来,如果是以get提交的,就从args属性创建
    # 2、验证表单数据,调用validate()方法,如果数据验证通过,此方法将会返回True,否则返回False
    # 3、访问表单的单个值,使用form.<NAME>.data
    
    
    #模版中的表单
    
    {% macro render_field(field) %}
      <dt>{{ field.label }}
      <dd>{{ field(**kwargs)|safe }}
      {% if field.errors %}
        <ul class=errors>
        {% for error in field.errors %}
          <li>{{ error }}</li>
        {% endfor %}
        </ul>
      {% endif %}
      </dd>
    {% endmacro %}
  • 相关阅读:
    [bzoj1934][Shoi2007]Vote 善意的投票
    [bzoj1834][ZJOI2010]network 网络扩容
    [bzoj2127]happiness
    [bzoj3876][Ahoi2014]支线剧情
    [bzoj1927][Sdoi2010]星际竞速
    [bzoj3223]Tyvj 1729 文艺平衡树
    [bzoj3224]Tyvj 1728 普通平衡树
    FJOI2017 RP++
    [bzoj3529][Sdoi2014]数表
    异步ajax请求数据处理
  • 原文地址:https://www.cnblogs.com/themost/p/8552590.html
Copyright © 2011-2022 走看看