SQLModel

2021-08-31 17:50:17 +08:00
 Livid
来自 FastAPI 作者的新作品:

https://github.com/tiangolo/sqlmodel

https://sqlmodel.tiangolo.com/
5541 次点击
所在节点    Python
27 条回复
2i2Re2PLMaDnghL
2021-09-01 13:38:17 +08:00
Pydantic 和 SQLAlchemy 结合必会诞生的。
我都快自己动手了。
Rwing
2021-09-01 14:09:42 +08:00
还有很多人没明白 ORM 与 db helper 或者叫 db tool 的区别。
ORM 里很重要的一点是关系映射 Relational Mapping,如何让 db 中的数据以 object 的形式存在。

举个应该是 ORM 基础功能的简单的例子来说:
var zhangsan = new Student("张三");
var lisi = new Teacher("李四");
zhangsan.Teacher = lisi ;
db.Save(zhangsan);
这时数据库中应该创建了叫张三的学生以及李四的老师,并且张三的老师外键 id 是李四的 id

如果连这个都没法处理,那连 ORM 都不能叫
DoctorCat
2021-09-01 16:00:32 +08:00
没有 Pony ORM 舒服
DoctorCat
2021-09-01 16:02:36 +08:00
Macv1994
2021-09-01 16:11:34 +08:00
看了下,跟 SQLAlchemy 很像啊
frostming
2021-09-03 10:46:04 +08:00
都闪开,让我吐槽

1. 不是像 SQLAlchemy (简称 SQLA ),根本就是包了一下 SQLAlchemy,大家不要觉得 ORM 很高大上,现在新出的 python ORM 无一例外都是 SQLA 套壳,这个 SQLModel 更过分,里面除了 main.py 是和 pydantic 互通的部分,其他都是 import SQLA 的类加上泛型标注又放出去的(大家看过代码就知道我没有乱说)
2. 所以这个只能叫做「 SQLA 的扩展」不能叫做一个新的 ORM,该起名叫「 sqla-pydantic 」但那样怎么营销?
3. 作者擅长营销和文档,他在文档里放了一个 tutorial,居然是教你如何用 ORM CRUD,这个就是更初学者友好的 SQLA 文档啊,ORM 哪个核心功能是他写的呢?不要说 SQLA 文档看不懂,其实已经有很大进步了。
4. sqla-pydantic 的连接确实在 fastapi 里非常需要,但我相信之前也有很多人自己做过,不是很难。
5. 还记得 pydantic 被 PEP 563 坑的事情吗? https://github.com/samuelcolvin/pydantic/issues/2678,这个如果没解决好,任何在 Pydantic 之上的库全得废
6. SQLA 是支持异步的,但作者在文档里最重要的 quick start 例子里居然用的同步。
7. 如果言语过激请原谅,这是看过代码之后的感想,并不是酸。
abersheeran
2021-09-03 10:58:47 +08:00
修复一下上面的链接: https://github.com/samuelcolvin/pydantic/issues/2678

支持楼上 frostming 的说法。另外,fastapi 的性能本就没有他宣传的好,如果还用同步代码,那就更差劲了,比 Django 还慢。而作者本人给出的样例居然是同步的,属实逗笑我了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/799097

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX