flask web development 閱讀筆記

來源:互聯網
上載者:User

標籤:style   http   io   os   ar   sp   資料   on   bs   

在flask應用中,所有的flask應用都必須建立一個應用執行個體。web伺服器把它接收的來自用戶端的請求通過WSGI的協議傳遞給這個對象以進行處理。這時候,它會提供一種叫內容相關的神奇環境,它能讓一些對象可以全域可見,這樣你的視圖函數就可以去訪問這些對象做些處理,而又在同時有那麼多請求時確保安全執行緒。

flask裡有兩種上下文,應用上下文和請求上下文,這兩種上下文裡暴露出了4種變數:

應用上下文

current_app 活動應用程式的應用執行個體

應用上下文

g 在處理請求時臨時儲存資料,每次請求都會被重設

請求上下文

request request對象,封裝了用戶端發出的http請求的內容

請求上下文

session 用來儲存值的字典,這些值在請求中是被記住的

flask在調度每個請求前都會push這兩種上下文,而請求被處理後又被移除。應用上下文被push時它對應的兩個變數就可以被線程訪問了,請求上下文也是一樣的道理。當然,假如這些上下文沒有被啟用的話,訪問這些變數就會引發錯誤了。

舉個例子:

>>>from flask import Flask, current_app>>>app = Flask(__name__)>>>current_appTraceback (most recent call last):...RuntimeError: working outside of application context>>>app_ctx = app.app_context()>>>app_ctx.push()>>>current_app.name‘__main__‘>>>app_ctx.pop()


flask web development 閱讀筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.