Flask WTForms Integerfield 类型是文本而不是数字

Flask WTForms Integerfield type is text instead of number

这是我试过的:

nrkomp = IntegerField('Number',validators=[NumberRange(min=1, max=5, message='Invalid length')])

在开发者工具中,这个表单输入的类型是文本而不是数字,我已经阅读了文档,但找不到解决这个问题的方法。

您可以使用 wtforms html5 fields to get html5 input types, and html5 widgets 作为它们的关联小部件。

from wtforms import Form
from wtforms.fields import html5 as h5fields
from wtforms.widgets import html5 as h5widgets


class F(Form):

    n1 = h5fields.IntegerField("Number1")
    n2 = h5fields.IntegerField(
        "Number2", widget=h5widgets.NumberInput(min=0, max=100, step=10)
    )


for f in F():
    print(f)
<input id="n1" name="n1" step="1" type="number" value="">
<input id="n2" max="100" min="0" name="n2" step="10" type="number" value="">