请教flask-wtf/WTForms中validate()函数的作用和用法

tkpromise
  • 95

在视图函数中,表单用法示例如下:

@app.route('/register', methods=['GET', 'POST'])
def register():

form = RegistrationForm(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 render_template('register.html', form=form)

注意,这里我们默认视图使用了 SQLAlchemy ( 在 Flask 中使用 SQLAlchemy ),当然这 不是必须的。请根据你的实际情况修改代码。

请记住以下几点:

如果数据是通过 HTTP POST 方法提交的,请根据 form 的 值创建表单。如果是通过 GET 方法提交的,则相应的是 args 。
调用 validate() 函数来验证数据。如果验证通过,则 函数返回 True
,否则返回 False 。
通过 form.<NAME>.data 可以访问表单中单个值。

//以上内容来自http://dormousehole.readthedo...,这里来说调用validate()函数来验证数据,它的验证规则是什么?是否为空还是什么?谢谢!

回复
阅读 4.5k
2 个回答

在你定义RegistrationForm的时候,里面的某些Field字段会有 validators参数,validate()方法的验证规则便是根据这个的(如果它没被重载的话)

form = RegistrationForm(request.form)
你看下你的RegistrationForm定义

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏