SQLModel

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

https://github.com/tiangolo/sqlmodel

https://sqlmodel.tiangolo.com/
5505 次点击
所在节点    Python
27 条回复
learningman
2021-08-31 20:53:15 +08:00
传统的那几个 orm,peewee 啥的在 fastapi 用都挺蛋疼的
superrichman
2021-08-31 21:00:51 +08:00
一周 4 千 star,真 NB 。
coolcatha
2021-08-31 21:24:23 +08:00
就感觉,这个作者挺会起名字的,fastapi sqlmodel 听起来都很厉害
mmdsun
2021-08-31 22:07:41 +08:00
用过 Entity Framework Core
你会发现其他 O/RM 都用不下去了。

我用过很多 ORM 库。hibernate,JPA 。Python 的,SQLalchemy,Django 都用过。没一个好用的。。
yccalculus
2021-08-31 22:20:40 +08:00
@mmdsun 试试 sqlsugar
janxin
2021-08-31 22:34:55 +08:00
@mmdsun 要么试试 Python 的 Pony
janxin
2021-08-31 22:38:25 +08:00
SQLModel 相当于在 Pydantic 和 SQLAlchemy 之间加了一层兼容适配,其实还是可以的。不过其实我觉得直接把 SQLAlchemy 包起来比较好,现在还需要手工引入 SQLAlchemy 的相关东西
LeeReamond
2021-08-31 23:28:54 +08:00
好奇底层实现原理,因为 sqlalchemy 毕竟是同步的。所以它是以一个单线程运行 sqlalchemy,然后搞了一个异步事务中心来安排业务上的请求?然后如果我要使用 oracle 的话那 sqlalchemy 还要再把请求转发到 cxoracle 来执行。。。套娃之终极套娃啊
so1n
2021-08-31 23:35:53 +08:00
@LeeReamond sqlalchemy 把生成 sql 和执行 sql 拆分了 asyncio 的 orm 都只用到 sqlalchemy 的生成部分
so1n
2021-09-01 00:32:54 +08:00
@LeeReamond 然后最新版本的 sqlalchemy 也支持异步了
chroming
2021-09-01 00:35:29 +08:00
正好公司项目在用 fastapi 和 SQLAlchemy,尝试一下这个
coolcatha
2021-09-01 09:09:18 +08:00
@mmdsun 我感觉 Django 的很不错了啊!能说说这些大概有哪些问题吗?
qW7bo2FbzbC0
2021-09-01 09:47:26 +08:00
@mmdsun #4 NPoco 也不错,EF 我感觉有点重
mywaiting
2021-09-01 09:53:15 +08:00
RAW SQL 语句一把梭,容易理解,也不用再多学一门关于 ORM 的“方言”
Vegetable
2021-09-01 09:58:13 +08:00
@mywaiting 总有人说 sql 一把梭,我非常好奇你们写测试吗?你们测试能在 sqlite 或者 h2 之类的数据库上跑起来吗?反正用 orm 不在意这些。
sudoy
2021-09-01 10:17:45 +08:00
我刚刚准备好好学一学 SQLAlchemy 呢,就看到这个了,看起来不错的样子
micean
2021-09-01 10:29:19 +08:00
@Vegetable

orm 能写 merge into/insert ignore/insert on conflict/with as/select from partition 吗?
mywaiting
2021-09-01 10:44:08 +08:00
@Vegetable 测试有写的,在对应的数据库写入测试数据简单测试即可

在数据表结构确定的情况下,SQL 语句是一目了然的,无论是写测试用例还是后期维护都相当简单
ospider
2021-09-01 11:09:15 +08:00
别开新坑了,我就关心啥时候能把 FastAPI 的 API Reference 加上……查个参数还得去 tutorial 里翻,服了
l4ever
2021-09-01 13:19:56 +08:00
初步看了一下文档, 看起来像 SQLAlchemy.

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

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

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

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

© 2021 V2EX