我知道可以通过以下方法在Flask中设置请求大小的整体限制:
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
但是我想确保一个特定的路由将不接受特定大小的POST数据。
你需要检查一下特定路线本身;你可以随时测试内容长度;request.content_length
是一个None
或整数值:
cl = request.content_length
if cl is not None and cl > 3 * 1024 * 1024:
abort(413)
在访问请求中的表单或文件数据之前,请执行此操作。
你可以将其变成装饰器以供查看:
from functools import wraps
from flask import request, abort
def 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标头。使用装饰器或手动检查,你只是进行了相同的测试,但是在视图生命周期中稍早一些。
问题内容: 是否可以仅针对XHR请求限制Symfony 2路由?我想声明只能通过AJAX访问的路由。 我不想像这样在每个AJAX特定操作中添加一些额外的行: 我想定义: AJAX请求的一条规则 对相同URL进行GET / POST请求的一条规则 为了避开上述情况。 问题答案: 我知道这个问题有点老,但是与此同时 ,Symfony 2.4* 中引入 了 一种 新的解决方法 。 * 匹配表达式 对于a
问题内容: 我正在使用javascript和htmlcanvas调整jpeg图像的大小。调整大小后,我在锚标记中用作href属性,以提供一个链接,用户可以在其中下载调整大小的图像。 在一定的图像尺寸下效果很好。 似乎不同的浏览器对数据URL的大小有不同的限制,如下所述 在chrome中,当我超出数据URL大小限制时,单击下载链接不会发生任何事情。没有错误或任何东西(据我所知)。 是否可以通过编程方
问题内容: 我正在尝试使用jQuery Ajax将页面中的数据数组发送到MVC Action。这是我的jQuery代码: 让我解释一下。我有一个动态生成的HTML表,我需要将此数据存储到数据库中。在jQuery中,我遍历表有一个循环,我将数组中每一行的数据存储起来。然后,我使用Ajax将这些数据传递到MVC Action中。 这是我的问题开始的地方…我已经意识到有时会按预期进行,但是有时我会从Aj
我试图用vba做一个按钮来删除Excel表中的一行,但当我按下按钮并选择不止一行或许多单元格时,我想限制从E到I的选择(和行的数量无关)这里是我的代码,非常感谢,希望你能帮助我,我还没有找到任何类似的东西。
问题内容: 我们有要与HDFS集成的特定算法。该算法要求我们在本地访问数据(该工作将专门在中完成)。但是,我们确实希望在分发文件方面(提供可靠性和条带化)利用HDFS。计算完成后,我们将使用来简单地将答案发送回去,而不是执行任何其他工作。避免使用网络是一个明确的目标。是否存在允许我们限制网络数据访问的配置设置,以便在启动MapReduce作业时仅访问其本地DataNode? 更新: 添加一些上下文
问题内容: 基本路线是这样的: 是否可以命名该路由并在任何模板中使用它,以便可以像这样使用它: 灵感来自Django :) 问题答案: 没有开箱即用的机制。但是,您可以模仿Django的样式:定义文件,该文件将包含URL数组。首先开始: myviews.js urls.js 现在在 app.js (或任何主文件)中,您需要将URL绑定到Express。例如这样: app.js 现在,您可以定义自定