flask上下文是什么?flask上下文詳解

Flask使用上下文臨時(shí)把某些對象變?yōu)槿挚稍L問。有了上下文,就可以寫出下面的視圖函數(shù)。


Flask有兩種上下文:程序上下文和請求上下文

Flask在分發(fā)請求之前激活(或推送)程序和請求上下文,請求處理完成后再將其刪除。

程序上下文被推送后,就可以在線程中使用current_app和g變量。

請求上下文被推送后,就可以使用request和session變量


>>> from hello import app

>>> from flask import current_app>>> current_app.name

>>> current_app.name

Traceback (most recent call last):

...

RuntimeError: working outside of application context

>>> app_ctx = app.app_context()

>>> app_ctx.push()

>>> current_app.name

'hello'

>>> app_ctx.pop()


config

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

request

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

session

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

g

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

url_for()

flask.url_for()函數(shù)


get_flashed_messages()

flask.get_flashed_messages()函數(shù)


上下文處理器:

上下文處理器是一個(gè)返回字典的函數(shù),這個(gè)字典的鍵值最終將傳入應(yīng)用中所有模板的上下文:


Flask 上下文處理器自動(dòng)向模板的上下文中插入新變量

上下文處理器在模板渲染之前運(yùn)行,并且可以在模板上下文中插入新值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容