轻松获取并验证所有烧瓶输入参数。
Flask-Parameter-Validation的Python项目详细描述
烧瓶参数验证
轻松获取并验证所有烧瓶输入参数。
安装
- Pip:使用
pip install flask_parameter_validation
安装。在 - 手动:
git clone https://github.com/Ge0rg3/Flask-Parameter-Validation.git
python setup.py install
简单用法
fromflaskimportFlaskfromtypingimportList,Optionalfromflask_parameter_validationimportValidateParameters,Route,Json,Queryapp=Flask(__name__)@app.route("/update/<int:id>",methods=["POST"])@ValidateParameters()defhello(id:int=Route(),username:str=Json(min_length=5,blacklist="<>"),age:int=Json(min_int=18,max_int=99),nicknames:List[str]=Json(),password_expiry:Optional[int]=Json(5),is_admin:bool=Query(False)):return"Hello World!"if__name__=="__main__":app.run()
详细用法
- 我们在应该使用这个模块的所有函数上使用ValidateParameters修饰符。在
- 参数格式如下:
parameter_name: parameter_type = Class()
在本例中,parameter_name
将是字段名本身,例如“username”。parameter_type
将是预期的python数据类型,例如str、int、List、Union等。最后,Class()
是类输入之一,如下所示:
类
- Route()
这是通过URL传递的数据,例如/users/<int:id>
- Form()
这是普通HTML表单传递的数据,通常是x-www-form-urlencoded内容类型。在 - Json()
这是发送的任何JSON主体——请求必须具有application/JSON内容类型才能读取此内容。在 - Query()
这包括查询参数(也称为GET参数),例如/news/article?id=55
- 文件()
对文件的验证与其他验证不同,但是文件输入仍然可以作为它们的Flask FileStorage对象在这里获得。在
验证
所有参数都可以有默认值,并自动验证。Route
、Form
、Json
和{
- default:any,指定字段的默认值。在
- min_length:int,指定字符串输入的最小字符长度
- max_length:int,指定字符串输入的最大字符长度
- min_int:int,指定int输入的最小数目
- max_int:int,指定int输入的最大数目
- whitelist:str,一个包含允许的值字符的字符串
- blacklist:str,一个包含禁止字符的字符串
File
有以下选项:
- 内容类型:字符串数组,允许的内容类型数组。在
- 最小长度:文件的最小内容长度
- max_length:文件的最大内容长度
这些验证器被传递到route函数中的类中,例如:
username: str = Json("defaultusername", min_length=5)
profile_picture: Any = File(content_types=["image/png", "image/jpeg"])
filter: str = Query()
覆盖默认错误
默认情况下,错误消息以JSON响应的形式返回,“error”字段中有详细的错误。但是,可以通过将自定义错误函数传递到ValidateParameters修饰符中来进行编辑。例如:
^{pr2}$- 项目
标签: