如何像 flask 一样在 fastapi 中使用全局数据容器?
对于希望在不同方法中使用用户身份等信息的情况,许多开发人员习惯了使用 flask 中的 g 对象。那么 fastapi 是否提供了类似的功能?
答案:
fastapi 没有像 flask 的 g 对象这样的内置全局数据容器。但是,我们可以使用 contextvars 模块来实现类似的功能。
实现方式:
import contextvars import types import typing request_global = contextvars.ContextVar("request_global", default=types.SimpleNamespace()) # This is the only public API def g(): return request_global.get()
这个 g() 函数类似于 flask 中的 g 对象,它允许我们在不同方法中访问和操作全局数据。
注意: