首页 >后端开发 >Python教程 >如何在FastAPI端点中高效地初始化和重用全局对象?

如何在FastAPI端点中高效地初始化和重用全局对象?

Barbara Streisand
Barbara Streisand原创
2024-12-04 01:22:10985浏览

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