首頁 >後端開發 >Python教學 >如何在FastAPI端點中高效率地初始化和重複使用全域物件?

如何在FastAPI端點中高效率地初始化和重複使用全域物件?

Barbara Streisand
Barbara Streisand原創
2024-12-04 01:22:10929瀏覽

How to Efficiently Initialize and Reuse Global Objects in FastAPI Endpoints?

在FastAPI 端點中初始化和重複使用全域物件

概述

在FastAPI 中,您可能會遇到在每個端點中初始化全域物件或變數的情況資源密集。與外部服務的連接或複雜的計算是典型的例子。本文提供了兩種有效初始化和重複使用 FastAPI 端點中的全域資源的選項。

選項 1:使用請求物件

FastAPI 可讓您將自訂物件儲存在FastAPI 應用程式實例。可以使用端點函數中的 request.app.state 屬性來存取此屬性。透過在啟動事件或生命週期函數中初始化全域物件並將其新增至 app.state,所有端點都可以存取和重複使用該對象,而無需多次初始化。

選項 2:使用 Starlette Lifespan Handler

Starlette 框架提供了一個生命週期處理程序,讓您在應用程式啟動和關閉之前和之後執行程式碼。您可以在生命週期處理程序中實例化全域物件並將其新增至生命週期狀態字典。透過在端點函數中使用 request.state,您可以存取和重複使用端點中的物件。

結論

這兩個選項都提供了在 FastAPI 中初始化和重複使用全域物件的有效機制。選擇取決於您應用程式的特定要求和偏好。

以上是如何在FastAPI端點中高效率地初始化和重複使用全域物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn