使用 WTForms 进行表单验证的例子

Posted 道高一尺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 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 %}

 

以上是关于使用 WTForms 进行表单验证的例子的主要内容,如果未能解决你的问题,请参考以下文章

wtforms-表单生成及验证

Flask-论坛开发-4-知识点补充

flask web 表单验证 WTForms

测开之路一百四十八:WTForms表单验证

flask-WTForms

WTForms:安装“email_validator”以获得电子邮件验证支持