Tutorial - User Guide - SQLModel (tiangolo.com)
https sqlmodel.tiangolo.com/tutorial/
1、SQLModel的新建数据模型类 , 根据类定义时是否包含table=True部分 , 可以分为数据模型类和数据表模型类 。
2、数据表模型类的定义中 , 每行变量的定义 , 可以视为以数据表模型类名为表名(暂不知道是否可以指定表名)的数据表 , 其每个字段(或者说列)的类型及相关限制的声明 。
3、可选字段 , 在Python3.10版之后可以采用|分隔两种类型的方式 , 比如可选整型字段的定义可以是int|None 。 3.7以来的版本 , 也可以从typing库中import出Optional , 如Optional[int
, 等同于int|None 。
4、字段的默认值 。 两种表示方式 , 可以直接在定义之后用赋值=的方式给出 , 比如
age:int|None=None
或者利用Field函数的default参数给出
age:int|None=Field(default=None)
5、字段为主键的话 , 需要利用Field函数的参数primary_key=True指出 。
例如:
id:int|None=Field(default=None primary_key=True)
特别注意的是 , 自增的整型主键 , 尽管通过SQLModel创建的数据表并未指定对应字段为自增字段 , 但在python增加记录时 , 默认会自动增加主键的值 。
另外 , 上面id的类型可选 , 只是代表在本地python运行时 , 可以不用管id是否赋值 。
6、SQLModel的数据库引擎需要通过create_engine创建 , 数据库链接会话操作是通过Session(引擎)生成的session对象实现的 。 session在没有commit()之前 , 本地的数据对象不会提交到数据库(有点像事务的意思) , commit()提交之后 , 本地数据对象里的数据将成为过期数据 , 需要从服务器重新获取 。 调用本地数据对象的属性可以获取更新后的属性值(比如主键id的值) , 或者主动利用session.refresh(本地数据对象)来更新本地数据对象 。
【SQLModel学习笔记】更新状态
推荐阅读
- 买笔记本电脑别掉坑,华为、联想、惠普比较推荐,学习办公或游戏
- 让机器学会学习!两位为机器学习奠基的巨匠获得今年物理诺奖
- 机器学习是AI大模型的基石?深入解析两者之间的紧密关系
- 机器学习新时代,人工神经网络将如何改变生活?
- Google DeepMind推出DemoStart自主强化学习方法
- 改用直角中框?华为Mate 70系列外观变化大,向其他安卓手机学习
- 八大建议买的笔记本品牌推荐,听听内行人的看法
- 宏碁优跃air笔记本电脑评测:轻薄高效,学习办公的理想伙伴
- 史海沉钩:配备台式机CPU的笔记本你见过么?
- 13.3英寸翻转触控屏,这款二手NEC笔记本电脑,办公用刚刚好