<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 96 app上下文和request上下文詳解 ## 應用上下文和請求上下文 應用上下文和請求上下文都是存放到一個'LocalStack'的棧中,和應用app相關的操作就必須要到應用上下文,比如通過'current\_app'獲取當前的這個'app',和請求相關的操作就必須用到請求上下文,比如使用'url\_for'反轉視圖函數。 1. 在視圖函數中,不用擔心上下午呢的問題,因為視圖函數要執行,那么肯定是通過訪問url的方式執行的,那么這種情況下,Flask底層就已經自動的幫我們把請求上下文和應用上下文都推入到了相應的棧中。 2. 如果想要在視圖函數外面執行相關的操作,比如獲取當前的app\(current\_app\),或者是反轉url,那么就必須要手動推入相關的上下文: * 手動推入上下文 ```text # 第一種方式 app_context = app.app_context() app_context.push() # 第二種方式 with app.app_context(): print(current_app.name) ``` * 手動推入請求上下文,推入請求上下午到棧中,會首先判斷有沒有應用上下文,如果沒有那么就會先推入應用上下文到棧中,然后推入請求上下文到棧中 ```text with app.test_request_context(): # 手動推入一個請求上下文到請求上下文棧中 # 如果當前應用上下文中沒有請求上下文 # 那么會首先推入一個應用上下文到棧中 print(url_for('my_list')) ``` ## 為什么上下文需要放在棧中 1. 應用上下文,Flask底層是基于werkzeug,werkzeug是可以包含多個app的,所以這時候用一個棧來保存。如果你在使用app1,那么app1應該是要在棧的頂部。如果用完了app1,那么app1應該從棧中刪除。方便其他代碼使用下面的app 2. 如果在寫測試代碼,或者離線腳本的時候,我們有時候可能需要創建多個請求上下文,這時候需要存放到一個棧中了,使用哪個請求上下文的時候,就把對應的請求上下文放到棧的頂部
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看