Flask的url_for不引用斜杠

时间:2016-01-21 10:36:31

标签: python flask jinja2

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

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

如何在构建网址时告诉Flask还对/进行编码?

BTW,使用replace过滤器不起作用,因为它也会替换所有其他斜杠。

由于

1 个答案:

答案 0 :(得分:3)

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

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

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