Python-flask-wtform占位符行为
作者:互联网
形成:
class SignUpForm(Form):
username = TextField("Username: ",validators=[Required(),Length(3,24)])
为什么这样做?
form = SignUpForm()
form.username(placeholder="username")
但不是当您直接使用占位符作为SignUpForm的参数时呢?
class SignUpForm(Form):
username = TextField("Username: ",placeholder="username",validators=[Required(),Length(3,24)])
它给出了此错误TypeError:__init __()得到了意外的关键字参数’placeholder’
我对此有些疑惑,因为直接在类上定义它应该与
在做form.username(placeholder =“ username”)但为什么会给出错误?
解决方法:
定义字段与呈现字段不同. Calling a field to render it accepts arbitrary keyword args to add attributes to the input.只是在定义字段时,库并未设计为采用任意参数.
如果要使用快捷方式来渲染带有标签作为占位符的字段,则可以编写Jinja宏.
{% macro form_field(field) %}
{{ field(placeholder=field.label.text) }}
{% endmacro %}
标签:flask-wtforms,flask,python 来源: https://codeday.me/bug/20191028/1948988.html