如何验证Flask应用程序中的URL参数?

jam*_*abi 8 python rest flask

我正在Flask中编写一个RESTful API.我可以通过Request Object访问URL参数.验证给定URL参数的最佳方法是什么?

例如:

/places?zip=97239 # This is a valid filter
/places?foo=bar   # This is not a valid filter, 404 response?
Run Code Online (Sandbox Code Playgroud)

一种解决方案是搜索request.args并比较每个条目与一组有效的URL参数.有没有更好的办法?

谢谢!

Sim*_*ser 5

将GET参数放在字典中,并使用voluptuous对其进行验证。

例如:

parameters = Schema({
    Required('zip'): Coerce(int),
})
Run Code Online (Sandbox Code Playgroud)

将接受任何带有“ zip”键的字典,该字典的值可以强制转换为整数(因此,根据获得值的方式为1或“ 1”)。然后,您可以使用以下方法进行验证:

parameters(my_get_params)  # should not raise an exception
Run Code Online (Sandbox Code Playgroud)