V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
MRlaopeng
V2EX  ›  Python

Python 的哪个异步 ORM 好用点呢?

  •  
  •   MRlaopeng · 2023-07-24 01:19:25 +08:00 · 2587 次点击
    这是一个创建于 500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    sqlalchemy+SQLModel 算是一个解决方案吗

    18 条回复    2023-07-26 10:54:26 +08:00
    mimzy
        1
    mimzy  
       2023-07-24 01:25:15 +08:00 via Android   ❤️ 4
    SQLAlchemy ,久经考验且作者非常勤奋。
    joApioVVx4M4X6Rf
        2
    joApioVVx4M4X6Rf  
       2023-07-24 07:25:06 +08:00   ❤️ 1
    SQLAlchemy ,学了这个其他的都不用学了
    makerbi
        3
    makerbi  
       2023-07-24 12:52:15 +08:00   ❤️ 1
    要是习惯了 Django ORM 的话可以试试 peewee-async ,我自己的很多项目都在用,目前没出过啥问题。
    warcraft1236
        4
    warcraft1236  
       2023-07-24 13:17:40 +08:00
    好奇为啥要搞异步的 ORM 。另外,对于 python 这种动态类型的语言来说,ORM 也有点奇怪
    MRlaopeng
        5
    MRlaopeng  
    OP
       2023-07-24 13:58:17 +08:00
    @warcraft1236 还是为了方便维护,,之前弄的项目,现在七八十个 SQL,就开始吃力了
    MRlaopeng
        6
    MRlaopeng  
    OP
       2023-07-24 13:59:58 +08:00
    @makerbi peewee 的异步版本吗, peewee 是很成熟的, peewee-async 好像时间还不是很久, 谢谢推荐 我去看下使用示例
    MRlaopeng
        7
    MRlaopeng  
    OP
       2023-07-24 14:01:11 +08:00
    @mimzy
    @v2exblog
    是的, sqlalchemy2.0 文档也好很多了 ,就是异步用的没 django 的 ORM 那么爽
    Baloneo
        8
    Baloneo  
       2023-07-24 14:06:59 +08:00
    异步 orm 并不会更快
    MRlaopeng
        9
    MRlaopeng  
    OP
       2023-07-24 14:15:17 +08:00
    @Baloneo 为啥, 如果硬盘的 io 足够的话 , 如果查一个大点的数据不异步查询的话 不就阻塞了
    warcraft1236
        11
    warcraft1236  
       2023-07-24 15:00:00 +08:00
    @MRlaopeng ORM 理论上只是管理数据库的数据类型和 python 的类型的映射关系的。然后它一般都带个连接数据库的三方库,重点是这个三方库,连接数据库的时候得是异步的,这样才行
    就像 Java 他们默认的数据库连接都是同步的,用什么异步库,到最后都是同步的
    MRlaopeng
        12
    MRlaopeng  
    OP
       2023-07-24 15:25:28 +08:00
    @warcraft1236 哦哦,是的, 我补充下,,我说的这个异步 ORM,他查询的步骤和连接,都应该是异步执行的
    这样才有异步的意义, 不然没啥意义啊
    UN2758
        13
    UN2758  
       2023-07-24 16:10:10 +08:00
    现在的 orm 默认都是 lazy query 吧? eager 模式很少,这个行为不能定义为异步吧
    MRlaopeng
        14
    MRlaopeng  
    OP
       2023-07-24 16:33:12 +08:00
    @UN2758 执行查询的时候, 还是异步的,,,最起码他不阻塞, 我就挺喜欢异步 ORM 的
    tisswb
        15
    tisswb  
       2023-07-24 18:03:24 +08:00
    印象中 python 异步 orm 支持最好的是 postgresql 。
    tisswb
        16
    tisswb  
       2023-07-24 18:03:58 +08:00
    mysql 的话 异步优势好像体现不出来
    MRlaopeng
        17
    MRlaopeng  
    OP
       2023-07-24 21:37:17 +08:00
    @tisswb 是的 asyncpg 这个库 异步性能非常强
    911061873
        18
    911061873  
       2023-07-26 10:54:26 +08:00
    可以看看 tortoise-orm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.