Flask 標(biāo)準(zhǔn)上下文

2021-08-10 17:32 更新

下面的全局變量默認(rèn)在 Jinja2 模板中可用:

config

當(dāng)前的配置對象 (flask.config)

0.6 新版功能.

在 0.10 版更改: 現(xiàn)在這總是可用的,甚至在導(dǎo)入的模版里。

request

當(dāng)前的請求對象 (flask.request)。當(dāng)模版不是在活動的請求上下 文中渲染時這個變量不可用。

session

當(dāng)前的會話對象 (flask.session)。當(dāng)模版不是在活動的請求上下 文中渲染時這個變量不可用。

g

請求相關(guān)的全局變量 (flask.g)。當(dāng)模版不是在活動的請求上下 文中渲染時這個變量不可用。

url_for()

flask.url_for() 函數(shù)

get_flashed_messages()

flask.get_flashed_messages() 函數(shù)

Jinja 上下文行為

這些變量被添加到了請求的上下文中,而非全局變量。區(qū)別在于,他們默認(rèn)不會 在導(dǎo)入模板的上下文中出現(xiàn)。這樣做,一方面是考慮到性能,另一方面是為了 讓事情顯式透明。

這對你來說意味著什么?如果你想要導(dǎo)入一個需要訪問請求對象的宏,有兩種可能的方法:

  1. 顯式地傳入請求或請求對象的屬性作為宏的參數(shù)。
  2. 與上下文一起(with context)導(dǎo)入宏。

與上下文中一起(with context)導(dǎo)入的方式如下:

{% from '_helpers.html' import my_macro with context %}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號