SQLAlchemy 插件¶
SQLAlchemyPlugin 为在 Litestar 应用程序中使用 SQLAlchemy 提供完整支持。
备注
此插件仅与 SQLAlchemy 2.0+ 兼容。
SQLAlchemyPlugin 结合了 SQLAlchemyInitPlugin 和 SQLAlchemySerializationPlugin 的功能,每个插件都在以下部分中详细介绍。因此,本节描述了一个使用 SQLAlchemyPlugin 与 Litestar 应用程序和 SQLite 数据库的完整示例。
或者,跳到 SQLAlchemy 初始化插件 或 SQLAlchemy 序列化插件 以了解有关各个插件的更多信息。
小技巧
您可以通过运行 pip install 'litestar[sqlalchemy]' 将 SQLAlchemy 与 Litestar 一起安装。
示例¶
定义数据库模型¶
我们首先定义基础模型类和扩展基础模型的 TodoItem 类。TodoItem 类表示 SQLite 数据库中的待办事项。
设置 API 端点¶
接下来,我们在根路径 ("/") 设置一个 API 端点,允许将 TodoItem 添加到 SQLite 数据库。
初始化数据库¶
我们创建一个 init_db 函数,用于在应用程序启动时初始化数据库。
重要
在此示例中,我们在创建数据库之前删除数据库。这样做是为了可重复性,不应在生产环境中这样做。
设置插件和应用程序¶
最后,我们设置 SQLAlchemy 插件和 Litestar 应用程序。
这将使用插件配置应用程序,为添加项目设置路由处理程序,并指定在应用程序启动时运行 init_db 函数。
运行应用程序¶
使用以下命令运行应用程序:
$ litestar run
您现在可以通过向 http://localhost:8000 发送 POST 请求来添加待办事项,请求的 JSON 正文应包含待办事项的 "title"。
$ curl -X POST -H "Content-Type: application/json" -d '{"title": "Your Todo Title", "done": false}' http://localhost:8000/