【问题标题】:How to show messages from InputRequired in flask-wtforms如何在 flask-wtforms 中显示来自 InputRequired 的消息
【发布时间】:2021-06-01 09:26:04
【问题描述】:

在此脚本中,我将wtforms.validator 中的InputRequired 的消息设置为显示错误。另外,我给出了一个字符长度的最大值和最小值。但这些论点不起作用。

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, IntegerField, SubmitField,StringField
from wtforms.validators import ValidationError, Length, EqualTo, InputRequired, Email

class Login(FlaskForm):
    email =StringField(validators=[InputRequired(message = 'please input something'), Length(min=10, max=20), Email(message='this is not email')])
    password = PasswordField(validators=[InputRequired(message='please input something'), Length(min=8, max=20, message='you must be input more than 8 character')])
    submit = SubmitField('Enter')

class Register(FlaskForm):
    email =StringField(validators=[InputRequired(message = 'please input something'), Length(min=10, max=20), Email(message='this is not email')])
    phone = IntegerField(validators=[InputRequired(message='please input something')])
    password = PasswordField(validators=[InputRequired(message='please input something'), Length(min=8, max=20, message='you must be input more than 8 character')])
    submit = SubmitField('Enter')

这个脚本是login.html

{% extends "base.html" %}
{% block content %}
<h3>this is Home page</h3>
<form action="#">
    <!-- {{forlogin.hidden_tag()}} -->
    {{forlogin.email(placeholder="email")}}
    <br>
    {{forlogin.password(placeholder="password")}}
    <br>
    {{forlogin.submit}}
</form>
{% endblock content %}

【问题讨论】:

  • 你是怎么断定它不起作用的? “不工作”是什么意思?提示:您的模板中是否有代码显示email.errors
  • 老实说,不。我编辑了我的问题以显示 login.html。请再次检查

标签: python validation flask flask-wtforms wtforms


【解决方案1】:

来自 WTForms 文档中的 Field 类文档:

错误

If validate encounters any errors, they will be inserted into this list.

所以要显示错误,您必须在页面的列表中显示项目:

   <form action="#">
        {{login.email(placeholder="email")}}{% for error in login.email.errors %} {{ error }} {% endfor%}
   </form>

我不知道双括号之间的for 是什么意思,我删除了它。它导致了 Jinja2 的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2014-07-28
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多