IntegerField,StringField 本身只是Field类,就是字段,不会真的验证 参数是不是这个类型的····
来源:5-1 重写WTForms 一

老卢123123
2018-09-12
class ClientForm(Form):
account = StringField(validators=[DataRequired(),length(
min=5, max=32
)])
secret = StringField()
type = IntegerField(validators=[DataRequired()])
def validate_type(self, value):
try:
client = ClientTypeEnum(value.data)
except ValueError as e:
raise e
self.type.data = client
在这里,比如
type = IntegerField(validators=[DataRequired()])
接收到参数的时候,并不会验证到底是不是Integer还是字符串的…
{"type":"就算填写汉字也可以通过验证,不是非数字不可的"}
form = ClientForm().validate_for_api()
所以,目前这门课程里,所有的form表单,如果没有单独写验证器的话,其实压根就没有验证参数类型?
如果不能做为验证的话?这个问题怎么解决?
type = IntegerField(validators=[DataRequired()])
和
type = StringField(validators=[DataRequired()])
岂不是毫无区别~
求教!
写回答
2回答
-
russellxu
2018-10-09
这个当然是有区别的了。你如果用StringField实例化,那么参数传入INT的话是会抛出异常的
00 -
7七月
2018-09-12
内置验证器或者自定义验证器不都可以么。这是什么问题。。。。
00
相似问题