我之前在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地址或主机名
答案 0 :(得分:0)
HostnameValidation
没有出现在文档中是有原因的。据我所知,它仅在URL Validator中用作URL的主机部分。 Its own docstring提供了必要的说明:
用于检查主机名以进行验证的助手类。
这本身不是验证器,因此不会导出。
您可以做的是获取该类的代码,并根据您的具体情况write a custom WTForms validator。