Tortoise-ORM FastAPI integration 中文文档(完整版)
Tortoise-ORM FastAPI integration 中文文档(完整版)
前言
初衷:在学习的时候发现 Tortoise-ORM FastAPI integration 官方文档缺中文版,翻阅英文文档效率低,萌生翻译想法。
本系列旨在原汁原味的翻译 Tortoise-ORM FastAPI integration 官方文档,帮助英语不好的小伙伴快速学习使用方法。
翻译不易,禁止商业用途,转载请标明出处,具体情况或反馈请联系作者。
如果觉得翻译不错,欢迎在文章底部请博主喝杯奶茶,您的鼓励就是俺最大的动力!😄
简介
tortoise.contrib.fastapi
是一个轻量级的集成工具包,其中包含一个可以在生命周期设置/清理 Tortoise-ORM 的类 RegisterTortoise
。
FastAPI 基本上是由 Starlette 这 Pydantic 两个库以一种非常独特的方式结合而成的。
查看FastAPI 示例并查看Pydantic 序列化教程。
参考
HTTPNotFoundError
class tortoise.contrib.fastapi.HTTPNotFoundError(**data)
官方源代码直通车: [source]
具体摘要
Bases: BaseModel
detail : str
模型计算字段
model_computed_fields : ClassVar[dict[str, ComputedFieldInfo]] = {}
模型配置
计算字段名称及其对应的 CompulatedFieldInfo 对象的字典。
model_config : ClassVar[ConfigDict] = {}
模型字段
模型的配置应为符合 [ConfigDict][pydantic.config.ConfigDict]
规范的字典。
model_fields : ClassVar[dict[str, FieldInfo]] = {'detail': FieldInfo(annotation=str, required=True)}
关于模型中定义好的字段的元数据,这些字段名称将映射到 [FieldInfo][pydantic.fields.FieldInfo]
。
RegisterTortoise 方法注册 tortoise-orm
该功能替代了 Pydantic V1 中的 Model.__fields__
方法。
class tortoise.contrib.fastapi.RegisterTortoise(app,
config=None,
config_file=None,
db_url=None,
modules=None,
generate_schemas=False,
add_exception_handlers=False,
use_tz=False,
timezone='UTC',
_create_db=False
)
官方源代码直通车: [source]
官方参数说明:[app] -[config] -[config_file] -[db_url] -[modules] -[generate_schemas] -[add_exception_handlers] -[user_tz] -[timezone]
本文档提供中文解释,并附有官方文档的链接。
Bases: AbstractAsyncContextManager
在 FastAPI 应用程序的运行周期内注册 Tortoise-ORM,并在其生命周期内设置和销毁。
你可以仅用config
,config_file
或(db_url, modules)
中任意一个来注册 Tortoise-ORM。
参数
app 实例
app : FastAPI
: FastAPI 应用程序实例。
config 配置
config : Optional[dict]
:包含配置文件的字典。
示例:
{ 'connections': { # Dict format for connection 'default': { 'engine': 'tortoise.backends.asyncpg', 'credentials': { 'host': 'localhost', 'port': '5432', 'user': 'tortoise', 'password': 'qwerty123', 'database': 'test', } }, # Using a DB_URL string 'default': 'postgres://postgres:qwerty123@localhost:5432/events' }, 'apps': { 'models': { 'models': ['__main__'], # If no default_connection specified, defaults to 'default' 'default_connection': 'default', } } }
config 配置文件
config_file : Optional[str]
:指向与上面示例格式相同的配置文件的路径,文件拓展名可以是.json
或 .yml(如果安装了PyYAML)
。
数据库 URL
db_url : Optional[str]
:使用 DB_URL 字符串。详情参见 DB_URL
mudules 模块
modules : Optional[Dict[str, Iterable[Union[str, ModuleType]]]]
:key: [list_of_modules]
定义了一个用于配置 "app"
实例和 module
模块的字典,可以帮助框架在运行时找到必要的模块及其对应的模型。
生成 schema
generate_schemas : bool
:为True
则在注册时立即生成 schema
。只对开发环境或在内存中运行的 SQLite
数据库有用。
添加自动化异常处理机制
add_exception_handlers : bool
:为True
将在程序中添加自动化异常处理机制。不建议在生产环境中使用,可能会泄露数据。
时区感知
use_tz : bool
:布尔值,设置默认情况下是否使用时区感知功能。
时区设置
timezone : str
:时区设置,默认为 UTC
。
Raises 抛出异常
关闭 orm
ConfigurationError-适用于所有配置报错
async static close_orm()
返回值
Returns Type: None
官方源代码直通车: [source]
初始化 orm
async init_orm()
官方源代码直通车: [source]
返回值
Returns Type: None
tortoise.contrib.fastapi.register_tortoise(app,
config=None,
config_file=None,
db_url=None,
modules=None,
generate_schemas=False,
add_exception_handlers=False
)
官方源代码直通车: [source]
在 FastAPI 应用程序中注册 startup
启动和 shutdown
关闭事件以设置和销毁 Tortoise-ORM。
你可以仅用config
,config_file
或(db_url, modules)
中任意一个来注册 Tortoise-ORM。
register_tortoise 方法注册 tortoise-orm
参数
app 实例
app : FastAPI
: FastAPI 应用程序实例。
config 配置
config : Optional[dict]
:包含配置文件的字典。
示例:
{ 'connections': { # Dict format for connection 'default': { 'engine': 'tortoise.backends.asyncpg', 'credentials': { 'host': 'localhost', 'port': '5432', 'user': 'tortoise', 'password': 'qwerty123', 'database': 'test', } }, # Using a DB_URL string 'default': 'postgres://postgres:qwerty123@localhost:5432/events' }, 'apps': { 'models': { 'models': ['__main__'], # If no default_connection specified, defaults to 'default' 'default_connection': 'default', } } }
config 配置文件
config_file : Optional[str]
:指向与上面示例格式相同的配置文件的路径,文件拓展名可以是.json
或 .yml(如果安装了PyYAML)
。
数据库 URL
db_url : Optional[str]
:使用 DB_URL 字符串。详情参见 DB_URL
mudules 模块
modules : Optional[Dict[str, Iterable[Union[str, ModuleType]]]]
:key: [list_of_modules]
定义了一个用于配置 "app"
实例和 module
模块的字典,可以帮助框架在运行时找到必要的模块及其对应的模型。
生成 schema
generate_schemas : bool
:为True
则在注册时立即生成 schema
。只对开发环境或在内存中运行的 SQLite
数据库有用。
添加自动化异常处理机制
add_exception_handlers : bool
:为True
将在程序中添加自动化异常处理机制。不建议在生产环境中使用,可能会泄露数据。
Raises 抛出异常
ConfigurationError-适用于所有配置报错
返回值
Returns Type: None
- 感谢你赐予我前进的力量