烧瓶路径使用带斜杠的路径

烧瓶路径使用带斜杠的路径,第1张

烧瓶路径使用带斜杠的路径

PathConverter
URL转换明确不包括前导斜杠;
因为大部分的路径应该这是故意 包括这样的斜线。

参见

PathConverter
源代码:

regex = '[^/].*?'

该表达式匹配任何 不以开头的内容

/

您无法编码路径;

%2F

如果不是所有服务器都在将URL路径传递给WSGI服务器之前对其进行解码,则尝试通过将URL编码为URL而不是URL分隔符而不是一部分值来在路径中进行斜杠的转换最多。

您必须使用其他转换器

import werkzeugfrom werkzeug.routing import PathConverterfrom packaging import version# whether or not merge_slashes is available and trueMERGES_SLASHES = version.parse(werkzeug.__version__) >= version.parse("1.0.0")class EverythingConverter(PathConverter):    regex = '.*?'app.url_map.converters['everything'] = EverythingConverterconfig = {"merge_slashes": False} if MERGES_SLASHES else {}@api.route('/records/<hostname>/<metric>/<everything:context>', **config)

注意该

merge_slashes
选项;如果您安装了Werkzeug 1.0.0或更高版本,并将其保留为默认设置,则多个连续
/
字符将合为一个。

注册转换器必须在Flask

app
对象上完成,而不能在蓝图上完成。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存