python - 关于flask模板中使用url_for() 和 vuejs 冲突的问题 ?
天蓬老师
天蓬老师 2017-04-18 09:41:15
0
2
887

由于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',']}')}}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
阿神

第一种方案就是更改jinja2的语法,但是不推荐

env = Environment(variable_start_string="${", variable_end_string="}")

这样可以把Jinja2的变量分隔符改为“${}”,当然还可以做更多的设置。但这样做不只对服务器端模板的编写者不习惯,更严重的问题是一些针对这种模板的编辑器也认不出这个符号了。

最好的方案就是更改VUE的语法,我在所有的项目中都是这样定义的,写在VUE代码的前面即可,这样代码迁移也不会出问题

// ES6 模板字符串
Vue.config.delimiters = ['${', '}']
// 修改文本插值的定界符。

Vue.config.unsafeDelimiters = ['{!!', '!!}']
// 修改原生 HTML 插值的定界符。
小葫芦

你把JinJa里的{{}}严格限制为 {{ xx }}即可,我的项目都是如此设置

app.jinja_env.variable_start_string = '{{ '
app.jinja_env.variable_end_string = ' }}'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板