1.模型定义核心流程
graph TD
A[定义表模型类] --> B[配置字段约束]
B --> C[创建数据库引擎]
C --> D[生成表结构]
D --> E[DB Browser验证]
2.表模型类定义
1 | from sqlmodel import Field, SQLModel, create_engine |
核心要点:
table=True声明为数据库表模型Field参数说明:primary_key=True设置主键index=True创建数据库索引default=None允许空值
- 自动推断字段类型(str→TEXT,int→INTEGER)
3.可选字段配置
Python 3.8+兼容写法:
1 | from typing import Optional |
特性:
Optional表示字段可为空- 数据库对应
NULLABLE列类型 - 默认值设置避免空值异常
4.数据库引擎配置
1 | # SQLite连接配置 |
注意事项:
- 单例引擎对象全局复用
echo=True适合开发调试- 连接池参数优化生产性能
5.表结构生成验证
1 | # 创建所有注册表 |
验证方法:
- 使用DB Browser打开
.db文件 - 检查
hero表结构 - 验证字段类型与约束
- 查看SQL执行日志确认DDL语句
6.多数据库支持示例
| 数据库类型 | 连接字符串格式 | 驱动要求 |
|---|---|---|
| MySQL | mysql+pymysql://user:pass@host/db |
安装pymysql |
| PostgreSQL | postgresql://user:pass@host/db |
安装psycopg2 |
| Oracle | oracle+cx_oracle://user:pass@host |
安装cx_Oracle |
提示:完整示例代码建议参考官方文档 ,生产环境推荐使用PostgreSQL