上传文件至「/」
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
# ============================================================
|
||||
# database.py —— 数据库连接与会话管理
|
||||
# 职责:创建 SQLAlchemy 引擎、会话工厂,并提供 FastAPI 依赖注入用的 get_db
|
||||
# ============================================================
|
||||
|
||||
from sqlalchemy import create_engine # 创建数据库引擎
|
||||
from sqlalchemy.orm import sessionmaker # 创建会话工厂
|
||||
|
||||
from model import Base # 导入 ORM 基类(所有模型都继承它)
|
||||
|
||||
# 数据库引擎:连接 MySQL(驱动 pymysql),目标库名为 fastapi0814
|
||||
# 连接串格式:mysql+pymysql://用户名:密码@主机/数据库名
|
||||
engine = create_engine("mysql+pymysql://root:123456@localhost/fastapi0814")
|
||||
# 会话工厂:用于生成数据库会话对象
|
||||
# autocommit=False 表示手动提交事务;autoflush=False 表示查询前不自动刷写
|
||||
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
||||
|
||||
# FastAPI 依赖函数:通过 Depends(get_db) 注入数据库会话
|
||||
def get_db():
|
||||
db = SessionLocal() # 创建新会话
|
||||
try:
|
||||
yield db # 把会话交给业务代码使用
|
||||
finally:
|
||||
db.close() # 请求结束后无论如何都要关闭会话,避免连接泄漏
|
||||
Reference in New Issue
Block a user