Flask 的 url_for 不引用斜线

Flask's url_for does not quote slashes

我正在试用 Flash 和 Jinja2,看看是否可以将它们用于我的下一个项目。

然而,我被困在这里:
我有一个产品路线 (@app.route('/product/<prod>/')) 但是当我在另一个 Jinja2 模板中使用这个表达式 {{ url_for('product', prod='abc/def') }} 它构建这个 URL: /product/abc/def/ 而不是 /product/abc%2Fdef/.. .

如何让 Flask 在构建 URL 时也对 / 进行编码?

顺便说一句,使用 replace 过滤器不起作用,因为它还会替换所有其他斜杠。

谢谢

您只需更改 URL 路线以包含 路径 ,如下所示:

@app.route('/product/<path:prod>/')

这将根据需要转义 /。有关详细信息,请参阅 documentation