由于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',']}')}}
欢迎选择我的课程,让我们一起见证您的进步~~
第一種方案就是更改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 = ' }}'
第一種方案就是更改jinja2的語法,但是不建議
這樣可以把Jinja2的變數分隔符號改為“${}”,當然還可以做更多的設定。但這樣做不只對伺服器端模板的編寫者不習慣,更嚴重的問題是一些針對這種模板的編輯器也認不出這個符號了。
最好的方案就是更改VUE的語法,我在所有的專案中都是這樣定義的,寫在VUE程式碼的前面即可,這樣程式碼遷移也不會出問題
你把JinJa裡的{{}}嚴格限制為 {{ xx }}即可,我的專案都是如此設定