Python 访问模板内的jinja2全局变量

Python 访问模板内的jinja2全局变量,python,flask,jinja2,Python,Flask,Jinja2,我正在构建一个Flask应用程序,从模板中访问我的jinja2全局变量时遇到问题,你知道我做错了什么吗 \uuuu init\uuuuu.py from config import * ... #Initialize Flask App app = Flask(__name__) #Jinja2 global variables jinja_environ = app.create_jinja_environment() jinja_environ.globals['DANISH_LOGO

我正在构建一个Flask应用程序,从模板中访问我的jinja2全局变量时遇到问题,你知道我做错了什么吗

\uuuu init\uuuuu.py

from config import *

...

#Initialize Flask App
app = Flask(__name__)

#Jinja2 global variables
jinja_environ = app.create_jinja_environment()
jinja_environ.globals['DANISH_LOGO_FILE'] = DANISH_LOGO_FILE
jinja_environ.globals['TEMPLATE_MEDIA_FOLDER'] = TEMPLATE_MEDIA_FOLDER

...
...

TEMPLATE_MEDIA_FOLDER = '../static/img/media_library/' #This is the location of the media_library relative to the templates directory
DANISH_LOGO_FILE = '100danish_logo.png'

...
config.py

from config import *

...

#Initialize Flask App
app = Flask(__name__)

#Jinja2 global variables
jinja_environ = app.create_jinja_environment()
jinja_environ.globals['DANISH_LOGO_FILE'] = DANISH_LOGO_FILE
jinja_environ.globals['TEMPLATE_MEDIA_FOLDER'] = TEMPLATE_MEDIA_FOLDER

...
...

TEMPLATE_MEDIA_FOLDER = '../static/img/media_library/' #This is the location of the media_library relative to the templates directory
DANISH_LOGO_FILE = '100danish_logo.png'

...
示例模板

<p>{{ TEMPLATE_MEDIA_FOLDER }}</p>
{{TEMPLATE\u MEDIA\u FOLDER}


在本例中,TEMPLATE\u MEDIA\u文件夹不会向模板打印任何内容。

我假设您在这里使用的是Flask的
render\u TEMPLATE
函数,默认情况下该函数链接到应用程序的
jinja\u env
属性

试试这样的

app = Flask(__name__)
app.jinja_env.globals['DANISH_LOGO_FILE'] = DANISH_LOGO_FILE
app.jinja_env.globals['TEMPLATE_MEDIA_FOLDER'] = TEMPLATE_MEDIA_FOLDER

我假设您在这里使用的是Flask的
render_template
函数,该函数默认链接到应用程序的
jinja_env
属性

试试这样的

app = Flask(__name__)
app.jinja_env.globals['DANISH_LOGO_FILE'] = DANISH_LOGO_FILE
app.jinja_env.globals['TEMPLATE_MEDIA_FOLDER'] = TEMPLATE_MEDIA_FOLDER

被接受的答案是有效的,但它给了我派林错误

[pylint] E1101:Method 'jinja_env' has no 'globals' member
这样做可以避免错误:

app = Flask(__name__)
app.add_template_global(name='DANISH_LOGO_FILE', f=DANISH_LOGO_FILE)

被接受的答案是有效的,但它给了我派林错误

[pylint] E1101:Method 'jinja_env' has no 'globals' member
这样做可以避免错误:

app = Flask(__name__)
app.add_template_global(name='DANISH_LOGO_FILE', f=DANISH_LOGO_FILE)

@乔伊:很高兴能帮忙@乔伊:很高兴能帮忙!