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,并在其生命周期内设置和销毁。

你可以仅用configconfig_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。

你可以仅用configconfig_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