编程语言
首页 > 编程语言> > Python-flask-wtform占位符行为

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