Python基础入门 Day57:SQLModel 简介与数据库连接配置

34次阅读
没有评论

共计 1104 个字符,预计需要花费 3 分钟才能阅读完成。

SQLModel 是一个结合了 SQLAlchemy 和 Pydantic 优势的库,用于更简洁地定义数据库模型,并具备自动类型检查和数据验证能力,非常适合与 FastAPI 一起使用。

一、SQLModel 的特点

  1. 基于 SQLAlchemy 的 ORM 功能,兼容其所有能力;
  2. 继承自 Pydantic 的 BaseModel,支持类型注解和数据验证;
  3. 支持同步和异步两种模式;
  4. 内置对 SQLite 的支持,适合快速开发和原型设计。

二、安装 SQLModel

pip install sqlmodel

三、定义模型类
使用 SQLModel 创建数据模型时,字段需要指定类型,同时可以使用 Field 指定主键、索引等信息:

from sqlmodel import SQLModel, Field

class User(SQLModel, table=True):
    id: int = Field(default=None, primary_key=True)
    name: str
    age: int

四、创建数据库并连接
以 SQLite 为例,可以直接创建一个本地数据库文件

from sqlmodel import create_engine

sqlite_url = "sqlite:///./test.db"
engine = create_engine(sqlite_url, echo=True)  # echo=True 会输出 SQL 日志

五、自动建表

SQLModel.metadata.create_all(engine)

六、插入数据
使用 SQLAlchemy 的 Session 操作数据

from sqlmodel import Session

user = User(name="Alice", age=25)

with Session(engine) as session:
    session.add(user)
    session.commit()

七、查询数据

with Session(engine) as session:
    result = session.query(User).filter(User.name == "Alice").first()
    print(result)

八、集成到 FastAPI 项目
可以在 FastAPI 启动时初始化数据库连接,在依赖注入中统一管理 Session 实例

from fastapi import Depends

def get_session():
    with Session(engine) as session:
        yield session

九、总结
SQLModel 是构建 FastAPI + ORM 项目的优雅选择,它不仅兼容 Pydantic 模型,还可以简洁定义表结构,降低了数据库操作的复杂度。下一节将介绍 CRUD 的实际用法,包括增删改查操作函数的封装与使用。

正文完
 0
评论(没有评论)