# General Translation Python SDKs: ContextVarStorageAdapter URL: https://generaltranslation.com/zh/docs/python/reference/classes/context-var-storage-adapter.mdx --- title: ContextVarStorageAdapter description: General Translation Python 中用于请求区域设置的默认上下文变量存储适配器。ContextVarStorageAdapter 的 API 参考。 --- 用于请求区域设置的默认 [`StorageAdapter`](/docs/python/reference/classes/storage-adapter),底层基于 `contextvars.ContextVar`。它同时适用于线程 (Flask) 和异步 (FastAPI) 上下文,并会自动为每个请求提供各自隔离的区域设置。 ## 概览 [#overview] [`I18nManager`](/docs/python/reference/classes/i18n-manager) 默认使用此适配器,除非你传入自定义的 `store_adapter`。你很少需要自行构造它。 ```python from gt_i18n import ContextVarStorageAdapter, I18nManager manager = I18nManager(default_locale="en", store_adapter=ContextVarStorageAdapter()) ``` 从 `gt_i18n` 导入 `ContextVarStorageAdapter`。框架包不会重新导出该项。 ## 工作原理 [#how-it-works] * **上下文变量。** 它将区域设置存储在模块级的 `ContextVar` 中,因此并发请求之间不会互相看到对方的区域设置。 * **仅处理 locale 键。** 它只处理 `"locale"` 这个键;对于任何其他键,`get_item` 都会返回 `None`,而 `set_item` 则会将其忽略。 * **未设置时的默认行为。** 如果当前上下文中尚未设置区域设置,`get_item("locale")` 会返回 `None`,管理器随后会回退到默认区域设置。 ## 方法 [#members] | 成员 | 说明 | 返回值 | | ------------------------------ | ----------------- | ------------- | | [`get_item`](#member-get-item) | 从上下文变量中读取请求的区域设置。 | `str \| None` | | [`set_item`](#member-set-item) | 将请求的区域设置写入上下文变量。 | `None` | ### `get_item(key)` [#member-get-item] 当 `key` 为 `"locale"` 时,返回当前上下文中的区域设置;否则返回 `None`。 ### `set_item(key, value)` [#member-set-item] 当 `key` 为 `"locale"` 时,会设置当前上下文的区域设置;否则不执行任何操作。 ## 示例 [#example] ```python from gt_i18n import ContextVarStorageAdapter adapter = ContextVarStorageAdapter() adapter.set_item("locale", "es") adapter.get_item("locale") # "es"(在相同的上下文中) ```