flask中jinja2設定使用全域性變數

2021-08-03 07:04:44 字數 1255 閱讀 1486

最近一前端的小伙給我說,他想讓所有模板使用同乙個變數,每個模板對其值做了修改,其他模板拿到的變數也得到相應的改變,說白了就是jinja2操作全域性變數,這個可以使用cookie來實現,但是他不想做相應的js操作,然後問我有什麼辦法嗎?

我考慮之後想到jinja2可以設定全域性函式,可以讓全域性函式來操作變數,實現**如下。

目錄結構如下

global_var = [0]#定義乙個全域性變數,存在相應的值

defset_var

(var):

#設定全域性變數

global_var[0] = var

return

""def

get_var

():#獲取全域性變數

return global_var[0]

#使用flask對jinja2環境變數操作,來完成jinja2全域性函式的配置

defhello_world

():return render_template("get.html")

defset_var

():return render_template("set.html")

if __name__ == '__main__':

get.html

lang="en">

charset="utf-8">

titletitle>

head>

}body>

html>

set.html
lang="en">

charset="utf-8">

titletitle>

head>

set var ->100

}body>

html>

結果

第一

.0.1:5000/get 顯示的結果為0

第二.0.1:5000/set 顯示的結果為set var ->100

第三重新整理第一次開啟的頁面 顯示的結果為100

flask中jinja2設定使用全域性變數

coding utf 8 from flask import flask,render template global var 0 定義乙個全域性變數,存在相應的值 defset var var 設定全域性變數 global var 0 var return def get var 獲取全域性變數 ...

flask框架模板jinja2

from flask import flask,render template from flask script import manager def index return this is index def template return render template file01.htm...

Flask框架(二)模板引擎JinJa2

三.巨集操作 jinja2 是乙個現代的,設計者友好的,仿照 django 模板的 python 模板語言。它速度快,被廣泛使用,並且提供了可選的沙箱模板執行環境保證安全 hello lower safe 渲染值時不轉義 capitalize 把值的首字母轉換成大寫,其他字母轉換成小寫 lower ...