数据库连接配置(database.py)
SQLAlchemy 操作数据库需要三样东西:
一、完整代码
二、逐行解释
1. create_engine — 创建引擎
sqlite:///./test.db:三个斜杠///表示相对路径,运行后会在项目目录下生成test.db文件check_same_thread=False:SQLite 默认只允许创建它的线程访问,但 FastAPI 是多线程处理请求的,加这个参数解除限制- MySQL / PostgreSQL 不需要
connect_args这个参数
2. sessionmaker — 创建会话工厂
- 调用
SessionLocal()一次 = 打开一个数据库会话 autocommit=False:手动控制事务,调用db.commit()才会真正写入autoflush=False:查询前不自动 flush,手动控制更清晰bind=engine:绑定到上面创建的引擎
3. DeclarativeBase — 声明基类
- 所有的数据模型(表)都继承这个类

