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。
我正在试用 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。