推荐答案
在 FastAPI 中处理数据库连接通常使用依赖注入的方式,结合 SQLAlchemy
或 Databases
等库来管理数据库连接。以下是一个使用 SQLAlchemy
的示例:
-- -------------------- ---- ------- ---- ------- ------ -------- ------- ---- ---------- ------ ------------- ---- -------------------------- ------ ---------------- ---- -------------- ------ ------------- ------- - ------- ----------------------- - --------------------- - ------- ------ - -------------- ------------------------ ---------------------------------- ------ - - ------ ------------ - ------------------------------ ---------------- ------------ - ---- ---- - ------------------ - -- ------- -- --- - --------- - -------------- --- --------- -- - -------------- ---- ----- -- -------- ---------- - ---- ---------------------------- --- ------------------ ---- --- ------- - ----------------- - ------- -- ------- ---- - ----------------------------- -- ---------------- ------ ----
本题详细解读
1. 数据库连接配置
在 FastAPI 中,首先需要配置数据库连接。通常使用 SQLALCHEMY_DATABASE_URL
来指定数据库的 URL。例如,使用 SQLite 数据库时,URL 可以是 sqlite:///./test.db
。
2. 创建数据库引擎
使用 create_engine
函数创建数据库引擎。这个引擎负责管理与数据库的连接。对于 SQLite,需要传递 connect_args={"check_same_thread": False}
以确保线程安全。
3. 创建会话工厂
通过 sessionmaker
创建一个会话工厂 SessionLocal
。这个工厂用于生成数据库会话(Session),每个会话代表一个数据库连接。
4. 声明基类
使用 declarative_base
创建一个基类 Base
,所有数据库模型都将继承自这个基类。
5. 创建 FastAPI 应用
使用 FastAPI()
创建一个 FastAPI 应用实例。
6. 依赖函数
定义一个依赖函数 get_db
,用于获取数据库会话。这个函数使用 yield
来确保会话在使用后被正确关闭。
7. 示例路由
在路由中使用 Depends(get_db)
来注入数据库会话。这样,每个请求都会自动获取一个新的数据库会话,并在请求处理完成后关闭它。
通过这种方式,FastAPI 可以高效地管理数据库连接,确保每个请求都能获得独立的数据库会话,同时避免资源泄漏。