国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Flask-current_app這個坑

cc17 / 1913人閱讀

摘要:今天同學問了我一個關(guān)于的問題,我之前也看了一下慕課七月老師講的項目,正好碰到過,所以也給大家分享一下。之前在寫項目的時候也有用到,老師講的是代表了當前項目的,當然寫完項目也沒有任何問題,但是通過這次學習,我才發(fā)現(xiàn),好坑吶,真怕不用就忘了。

今天同學問了我一個關(guān)于current_app的問題,我之前也看了一下慕課七月老師講的flask項目,正好碰到過,所以也給大家分享一下。
【current_app】
之前在寫項目的時候也有用到current_app,老師講的是代表了當前項目的app,當然寫完項目也沒有任何問題,但是通過這次學習,我才發(fā)現(xiàn),好坑吶,真怕不用就忘了。大家看一下下面這段代碼

from flask import Flask, current_app

app = Flask(__name__)
print(app)    #輸出結(jié)果:

相信大家對這段代碼是沒有問題的,也不知道有啥作用,那么請看下面這段代碼

from flask import Flask, current_app

app = Flask(__name__)
print(app)    #輸出結(jié)果:
app2 = current_app
print(app2)    #輸出結(jié)果:竟然報了一大堆的錯誤

錯誤信息是這樣子的:RuntimeError: Working outside of application context.意思是說我們在應(yīng)用上下文之外運行的,這究竟是咋回事,請看下面這幅圖


原來在flask內(nèi)部維護者兩個線程隔離的棧,current_app指向了AppContext(應(yīng)用上下文)中的棧頂,request指向了RequestContext(請求上下文)棧頂,當請求進入的時候,Request對象被壓入棧,從而request有了指向處理請求,接下來會判斷AppContext棧頂是否為空,若為空則向棧中壓入一個AppContext對象,即app,從而current_app就有了指向,所以我們在項目中使用是沒有報錯的,而我們上面的代碼不是在請求中實現(xiàn)的所以AppContext棧頂為空,current_app并沒有指向一個AppContext對象,怎樣解決呢?

from flask import Flask, current_app

app = Flask(__name__)
print(app)    #輸出結(jié)果:
with app.app_context():
    app2 = current_app
    print(app2)    #輸出結(jié)果:

這里我們使用了with,其app_context()返回一個AppContext對象,而其又實現(xiàn)了__enter__與__exit__分別讓AppContext對象,即app入棧和出棧,完成了此操作。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42953.html

相關(guān)文章

  • 又被事件冒泡了一把,這次要徹底弄懂瀏覽器的事件流

    摘要:事件冒泡一個簡單,但是坑了我無數(shù)回的知識點與的交互通過事件來實現(xiàn)。而瀏覽器的事件流是一個非常重要的概念。不去討論那些古老的瀏覽器有事件捕獲與事件冒泡的爭議,只需要知道在中規(guī)定的事件流包括了三個部分,事件捕獲階段處于目標階段事件冒泡階段。 打算封裝一個彈窗組件,做的時候忘記了考慮事件冒泡的因素,結(jié)果被坑得不要不要的。為了解決自己的問題,去查閱了不少資料,把事件流相關(guān)的知識都給總結(jié)一下。 ...

    Ocean 評論0 收藏0
  • 又被事件冒泡了一把,這次要徹底弄懂瀏覽器的事件流

    摘要:事件冒泡一個簡單,但是坑了我無數(shù)回的知識點與的交互通過事件來實現(xiàn)。而瀏覽器的事件流是一個非常重要的概念。不去討論那些古老的瀏覽器有事件捕獲與事件冒泡的爭議,只需要知道在中規(guī)定的事件流包括了三個部分,事件捕獲階段處于目標階段事件冒泡階段。 打算封裝一個彈窗組件,做的時候忘記了考慮事件冒泡的因素,結(jié)果被坑得不要不要的。為了解決自己的問題,去查閱了不少資料,把事件流相關(guān)的知識都給總結(jié)一下。 ...

    TIGERB 評論0 收藏0
  • Docker初體驗——踩過的那些

    摘要:原因其實這個報錯不需要下載最新文件,而是文件沒有放到正確的位置。重啟電腦后按或進入界面不同主板型號進入所需按鍵不同。端口映射環(huán)境下可能不存在這個問題坑在下部署了應(yīng)用服務(wù)并進行了端口映射。 2018?年?3?月?6?日 Docker安裝 環(huán)境:windows7 安裝包:DockerToolbox-17.10.0-ce.exe (下載地址:http://mirrors.aliyun.co...

    Jrain 評論0 收藏0
  • 快速排序填口訣

    摘要:直接默寫出快速排序還是有一定難度的,所以一定要弄清楚原理再去記憶而不是去硬背。快速排序是于年提出的一種劃分交換排序。 快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實實用,因此在很多筆試面試中出現(xiàn)的幾率很高。 直接默寫出快速排序還是有一定難度的,所以一定要弄清楚原理再去記憶而不是去硬背。 快速排序是C.R.A....

    Ocean 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<