你需要检查一下特定路线本身;你可以随时测试内容长度;
request.content_length是一个
None或整数值:
cl = request.content_lengthif cl is not None and cl > 3 * 1024 * 1024: abort(413)
在访问请求中的表单或文件数据之前,请执行此操作。
你可以将其变成装饰器以供查看:
from functools import wrapsfrom flask import request, abortdef limit_content_length(max_length): def decorator(f): @wraps(f) def wrapper(*args, **kwargs): cl = request.content_length if cl is not None and cl > max_length: abort(413) return f(*args, **kwargs) return wrapper return decorator
然后将其用作:
@app.route('/...')@limit_content_length(3 * 1024 * 1024)def your_view(): # ...本质上这就是Flask所做的;当你尝试访问请求数据时,在尝试解析请求正文之前,首先检查Content-Length标头。使用装饰器或手动检查,你只是进行了相同的测试,但是在视图生命周期中稍早一些。



