需要flask-wtforms字段

Aut*_*oft 3 python flask flask-wtforms

我如何添加此烧瓶代码所需的标签:

{{ form.youtube_href(type='url', class='form-control') }}
Run Code Online (Sandbox Code Playgroud)

实际输出是:

<input class="form-control" id="youtube_href" name="youtube_href" value="" type="url">
Run Code Online (Sandbox Code Playgroud)

需要这个输出棒给出错误:

<input class="form-control" id="youtube_href" name="youtube_href" value="" type="url" required>
Run Code Online (Sandbox Code Playgroud)

我试过这个蝙蝠给出错误:

{{form.youtube_href(type ='url',class ='form-control','required')}}

dav*_*ism 8

从WTForms 2.2(2018年6月2日)开始,字段现在呈现required属性,如果它们具有设置required标志的验证器,例如DataRequiredInputRequired.如果由于某种原因您不想渲染属性,则可以传递required=False.或者,如果要禁用所有浏览器验证,可以novalidateform标记中设置属性.一般情况下,您应该更喜欢启用浏览器验证,因为它会阻止对简单验证的请求/响应,这是可取的.


您在关键字参数之后传递位置参数,这是语法错误.相反,传递required=True,这将在标签上设置一个裸属性.检查字段上的标志以查看是否Required设置了验证器:field.flags.required是布尔值.创建一个URLField而不是手动传递类型.

from flask_wtf import Form
from wtforms.fields.html5 import URLField
from wtforms.validators import InputRequired

class MyForm(Form):
    youtube_href = URLField(validators=[InputRequired()])

form = MyForm()
print(form.youtube_href(required=form.youtube_href.flags.required))
# <input id="youtube_href" name="youtube_href" required type="url" value="">
Run Code Online (Sandbox Code Playgroud)