每当我尝试与flask-wtf一起使用时,HostnameValidation错误

时间:2019-06-28 07:34:52

标签: flask flask-wtforms

我之前在Google中进行过搜索,但没有结果,在卡住3天后,我决定寻求帮助

Information:
WTForms==2.2.1
Flask==1.0.2
Flask-WTF==0.14.2 

任何人都尚未使用HostnameValidation。我正在对来自表单的输入进行验证,但是好像每当我尝试使用带有/不带参数allow_ip = True的此验证方法时。它给了我类似的错误

class ServiceForm(FlaskForm):
    name = StringField('Service Name',[validators.DataRequired(), validators.Length(min=2), validators.Regexp("^[A-Za-z0-9_-]*$",message='Service Name must be number and letter only. No space!')])
    type = SelectField('Service Type', choices=[('2','Check Port')])
    host = StringField('IP Host', [ validators.HostnameValidation( allow_ip= True)])
    port = DecimalField('Port Number',[validators.DataRequired(), validators.NumberRange(min=10,max=65535,message='Port must be between 10-65535')])

注意:如果我将HostnameValidation更改为另一种方法,它将可以正常工作,但是并不能为我提供足够的验证。我想验证该字段是否为有效的IP地址或主机名

1 个答案:

答案 0 :(得分:0)

HostnameValidation没有出现在文档中是有原因的。据我所知,它仅在URL Validator中用作URL的主机部分。 Its own docstring提供了必要的说明:

  

用于检查主机名以进行验证的助手类。

     

这本身不是验证器,因此不会导出。

您可以做的是获取该类的代码,并根据您的具体情况write a custom WTForms validator

相关问题