推荐答案
在 FastAPI 中,与数据库集成通常使用 databases
库或 SQLAlchemy
库。以下是使用 databases
库的示例:
-- -------------------- ---- ------- ---- ------- ------ ------- ---- --------- ------ -------- ------------ - --------------------------------------------- --- - --------- -------- - ---------------------- ------------------------ ----- --- ---------- ----- ------------------ ------------------------- ----- --- ----------- ----- --------------------- ------------------- ----- --- ------------- ----- - ------- - ---- ------ ------ ----- -------------------------
本题详细解读
1. 安装依赖
首先,你需要安装 databases
库和相应的数据库驱动。例如,如果你使用的是 PostgreSQL,可以运行以下命令:
pip install databases[postgresql]
2. 配置数据库连接
在 FastAPI 应用中,你需要配置数据库连接字符串。例如,对于 PostgreSQL,连接字符串的格式为:
DATABASE_URL = "postgresql://user:password@localhost/dbname"
3. 创建 Database 实例
使用 databases.Database
类创建一个数据库实例:
database = Database(DATABASE_URL)
4. 连接和断开数据库
在应用启动时连接数据库,在应用关闭时断开连接。可以通过 FastAPI 的 startup
和 shutdown
事件来实现:
@app.on_event("startup") async def startup(): await database.connect() @app.on_event("shutdown") async def shutdown(): await database.disconnect()
5. 执行数据库查询
在路由处理函数中,你可以使用 database.fetch_all
、database.fetch_one
等方法来执行数据库查询。例如:
@app.get("/users/") async def read_users(): query = "SELECT * FROM users" return await database.fetch_all(query)
6. 使用 SQLAlchemy
如果你更喜欢使用 ORM,可以选择 SQLAlchemy
。FastAPI 提供了与 SQLAlchemy
的良好集成支持。你可以使用 SQLAlchemy
的模型和会话管理来操作数据库。
7. 异步支持
databases
库和 SQLAlchemy
都支持异步操作,这使得它们非常适合与 FastAPI 的异步特性结合使用。
通过以上步骤,你可以在 FastAPI 中轻松地与数据库进行集成,并执行各种数据库操作。