国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python】Flask上下文管理

這篇具有很好參考價值的文章主要介紹了【Python】Flask上下文管理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  1. current_app
    • 類型:用用上下文的代理對象
    • 主要用途:提供對當(dāng)前激活的Flask應(yīng)用實例的訪問。通常訪問應(yīng)用配置,注冊的藍圖,應(yīng)用級別的數(shù)據(jù)等等
    • 使用場景:在視圖函數(shù),錯誤處理器或者其他任何需要訪問應(yīng)用配置和屬性的地方
    • 實際數(shù)據(jù)實例:‘current_app.config[‘DEBUG’]’可以獲取當(dāng)前應(yīng)用的調(diào)試模式的狀態(tài)
  2. ‘g’
    • 類型:應(yīng)用上選文的全局變量
    • 主要用途:在一次請求的生命周期內(nèi)存儲和共享數(shù)據(jù)?!痝‘可以被用來保存數(shù)據(jù)庫連接,用戶認證信息等跨函數(shù)調(diào)用的臨時數(shù)據(jù)
    • 使用場景:在處理一個請求得分時候,用于在視圖函數(shù),模板以及請求鉤子之間共享數(shù)據(jù)
    • 實際數(shù)據(jù)實例:在請求開始時設(shè)置’g.user=get_current_user()‘,然后再后續(xù)的視圖函數(shù)或者模板中使用’g.user‘來訪問當(dāng)前用戶的信息。
  3. request
    • 類型:請求上下文的代理對象
    • 主要用途:封裝了客戶端發(fā)起的http請求的所有的數(shù)據(jù),包括URL,METHOD等
    • 使用場景:再視圖函數(shù)中處理和響應(yīng)客戶的請求時候,訪問請求數(shù)據(jù)
    • 實際數(shù)據(jù)實例:“request.from”
  4. session
    • 類型:請求上下文的字典對象
    • 主要用途:允許跨請求保持信息?;诳蛻舳说腸ookie實現(xiàn),可用于存儲用戶會話數(shù)據(jù),比如登錄狀態(tài),用戶偏好設(shè)置等
    • 使用場景:再用戶登錄流程中存儲用戶身份信息,以及跨頁面請求保持用戶狀態(tài)
    • 實際數(shù)據(jù)實例:“session[‘user_id’] = 2”存儲再當(dāng)前登錄用戶的ID,用戶跨請求識別用戶
  5. 區(qū)別和選擇場景使用
    • 請求獨立性:’request‘和’session‘都是請求范圍的,但是’‘session’可以跨請求保持狀態(tài),而request只與當(dāng)前請求有關(guān)。
    • 數(shù)據(jù)共享:‘g’用于再處理當(dāng)個請求的不同階段共享數(shù)據(jù),而‘current_app’提供了一個接口來訪問和操作應(yīng)用級別的資源和配置
    • 生命周期:‘current_app’和‘g’屬于應(yīng)用上下文,與應(yīng)用生命周期想匹配;‘request’和‘session’屬于請求上下文,更短暫,但是‘session’數(shù)據(jù)再客戶端持久化,能夠跨請求保留
  6. g不是只處理當(dāng)前請求的一寫全局變量的數(shù)據(jù)嗎?為什么會是應(yīng)用上下文呢?
    • g的用途
      • 請求級別的存儲:‘g’確實時用來在一個請求的生命周期內(nèi)存儲和共享數(shù)據(jù),他為當(dāng)前請求提供了一個臨時存儲,每次請求開始的時候清空,請求結(jié)束的時候銷毀,這使得‘g’成為了在處理特定請求的不同部分之間共享數(shù)據(jù)的理想選擇
    • g和應(yīng)用上下文
      • 生命周期管理:盡管‘g’是按照請求生命周期管理 的,他任然是在應(yīng)用上下文中被創(chuàng)建和銷毀的。這是因為flask使用上下文局部對象來讓特定的變量在一個線程中全局可以訪問,而不會影響到其他的線程?!甮’對象就是這樣一個上下文局部對象,他依賴于應(yīng)用上下文的激活來確定其作用范圍
      • 技術(shù)實現(xiàn)的角度:從技術(shù)實現(xiàn)的角度看,‘g’對象被設(shè)計為隨著應(yīng)用上下文而存在,盡管他的內(nèi)容和生命周期是按請求來管理的。這意味著,即使‘g’用于存儲請求級別的數(shù)據(jù),他的存在任然依賴于當(dāng)前的應(yīng)用上下文
    • 問什么這樣設(shè)計
      • 這種設(shè)計允許‘g’在單個請求處理過程中全局可訪問,而不需要開發(fā)者手動傳遞他,同時將‘g’的生命周期綁定到應(yīng)用上下文有助于在使用多線程模式或多進程模式的時候,保持?jǐn)?shù)據(jù)的隔離和線程安全。

文章來源地址http://www.zghlxwxcb.cn/news/detail-841126.html

到了這里,關(guān)于【Python】Flask上下文管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【 Python 全棧開發(fā) - WEB開發(fā)篇 - 38 】property和上下文管理器

    Python 是一個簡潔而強大的編程語言,通過提供各種特性和工具,使開發(fā)人員能夠更高效地進行編程。其中一個非常有用的特性是 @property 裝飾器,它允許我們在類中定義屬性并自定義其行為。 @property 裝飾器用于將一個方法轉(zhuǎn)換為類的屬性。使用 @property 裝飾器,我們可以像訪

    2024年02月13日
    瀏覽(36)
  • Python_上下文管理器

    Python_上下文管理器

    目錄 上下文管理器類 多上下文管理器 contextmanager實現(xiàn)上下文管理器 上下文管理器(context manager)是 Python 編程中的重要概念,用于規(guī)定某個對象的使用范圍。一旦進入或者離開該使用范圍,會有特殊操作被調(diào)用 (比如為對象分配或者釋放內(nèi)存)。它的語法形式是with...as... 為了確

    2024年02月11日
    瀏覽(23)
  • Python函數(shù)-上下文管理器

    上下文管理協(xié)議(Context Management Protocol):包含方法 enter () 和 exit (),支持該協(xié)議的對象要實現(xiàn)這兩個方法。 上下文管理器(Context Manager):支持上下文管理協(xié)議的對象,這種對象實現(xiàn)了__enter__() 和 exit () 方法。 上下文管理器定義執(zhí)行 with 語句時要建立的運行時上下文,負

    2024年02月12日
    瀏覽(21)
  • python 上下文管理器 with 語句

    上下文管理器 with 語句可以自動地分配和釋放資源。 這篇文章中介紹了文件讀寫的方法,每次讀取文件時要使用 open() 函數(shù)打開文件,使用結(jié)束后要用 close() 函數(shù)關(guān)閉文件。有時,我們會忘記關(guān)閉文件,或者打開了許多文件占用太多資源。使用上下文管理器 with 語句可以方便

    2023年04月09日
    瀏覽(29)
  • Python教程(27)——如何使用Python中的上下文管理器

    當(dāng)我們在編寫代碼時,經(jīng)常會遇到需要管理資源的情況,比如打開和關(guān)閉文件,如果遇到了一些異常情況,我們需要關(guān)閉資源,不然會導(dǎo)致資源泄露,雖然我們可以通過手動的方式來關(guān)閉,但如果有多個異常情況需要考慮的話,萬一不小心漏了一處,就芭比Q了。所以,如果有

    2024年02月19日
    瀏覽(24)
  • Python高級語法:with語句和上下文管理器

    Python高級語法:with語句和上下文管理器

    1.文件操作說明: ①文件使用完后必須關(guān)閉。 ②因文件對象會占用操作系統(tǒng)的資源,并且操作系統(tǒng)同一時間能打開的文件數(shù)量也是有限的。 例如:? 2. 存在的安全隱患: ① 由于文件讀寫時都有可能產(chǎn)生IOError,一旦出錯,后面的f.close()就不會調(diào)用。 例如: 運行結(jié)果: 3.try…except…

    2024年02月04日
    瀏覽(23)
  • 無限上下文,多級內(nèi)存管理!突破ChatGPT等大語言模型上下文限制

    無限上下文,多級內(nèi)存管理!突破ChatGPT等大語言模型上下文限制

    目前,ChatGPT、Llama 2、文心一言等主流大語言模型,因技術(shù)架構(gòu)的問題上下文輸入一直受到限制,即便是Claude 最多只支持10萬token輸入,這對于解讀上百頁報告、書籍、論文來說非常不方便。 為了解決這一難題,加州伯克利分校受操作系統(tǒng)的內(nèi)存管理機制啟發(fā),提出了MemGPT。

    2024年02月06日
    瀏覽(26)
  • Zustand 和 React 上下文狀態(tài)管理

    Zustand 和 React 上下文狀態(tài)管理

    Zustand 是客戶端全局狀態(tài)管理的一個很棒的庫。它簡單、快速,并且包大小小。然而,有一件事我不一定喜歡它:這些 Store 是全局性的。 但這不是全局狀態(tài)管理的重點嗎?要使該狀態(tài)在您的應(yīng)用程序中隨處可用。不過當(dāng)我回顧過去幾年中使用 zustand 的情況時,我意識到,更多

    2024年04月25日
    瀏覽(22)
  • pymysql 上下文管理器控制事務(wù)提交和回滾

    示例: 從上面例子看出, 在with結(jié)構(gòu)進入時,事務(wù)開始begin 在with結(jié)構(gòu)退出時,會根據(jù)是否產(chǎn)生異常進行commit和rollback操作,并關(guān)閉連接

    2024年01月25日
    瀏覽(29)
  • HarmonyOS/OpenHarmony(Stage模型)卡片開發(fā)應(yīng)用上下文Context使用場景二

    3.創(chuàng)建其他應(yīng)用或其他Module的Context 基類Context提供創(chuàng)建其他應(yīng)用或其他Module的Context的方法為createModuleContext(moduleName:string),創(chuàng)建其他應(yīng)用或者其他Module的Context,從而通過該Context獲取相應(yīng)的資源信息(例如獲取其他Module的獲取應(yīng)用開發(fā)路徑信息)。 調(diào)用createModuleContext(moduleNa

    2024年02月11日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包