由于vue的 {{}}
和jinja 冲突 所以我把 vue的改成了 {[]}
{{url_for('static', filename='{[id]}.jpg')}}
然后输出是
/static/%7B%5Bid%5D%7D.jpg
想了个很蠢的办法
{{ url_for('static', filename='{[id]}.jpg').replace('%7B%5B','{[').replace('%5D%7D',']}')}}
由于vue的 {{}}
和jinja 冲突 所以我把 vue的改成了 {[]}
{{url_for('static', filename='{[id]}.jpg')}}
然后输出是
/static/%7B%5Bid%5D%7D.jpg
想了个很蠢的办法
{{ url_for('static', filename='{[id]}.jpg').replace('%7B%5B','{[').replace('%5D%7D',']}')}}
你把JinJa里的{{}}严格限制为 {{ xx }}即可,我的项目都是如此设置
app.jinja_env.variable_start_string = '{{ '
app.jinja_env.variable_end_string = ' }}'
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
第一种方案就是更改jinja2的语法,但是不推荐
这样可以把Jinja2的变量分隔符改为“${}”,当然还可以做更多的设置。但这样做不只对服务器端模板的编写者不习惯,更严重的问题是一些针对这种模板的编辑器也认不出这个符号了。
最好的方案就是更改VUE的语法,我在所有的项目中都是这样定义的,写在VUE代码的前面即可,这样代码迁移也不会出问题