有哪些好的Python ORM解决方案?

254
我正在评估并考虑使用CherryPy来完成一个项目,这个项目基本上是一个JavaScript前端(通过客户端浏览器)与后端Python Web服务进行交互。因此,我需要在后端使用Python实现一个快速且轻量级的解决方案,然后通过ORM与PostgreSQL数据库通信(通过JSON传递给浏览器)。
我也正在看Django,我很喜欢它,因为它的ORM已经内置了。但是,我认为Django可能比我实际需要的更多一些功能(即我不需要的功能会导致速度变慢?)。
请问有没有人对不同的Python ORM解决方案有经验,并可以比较和对比它们的功能、速度、效率等方面?

3
PonyORM 看起来非常不错。 - Niklas R
对象关系映射(ORM)已经在许多编程语言中非常流行,是SQL的最佳替代方案之一。我受到方法链接风格的启发,为我的TRIADB项目创建了CQL。healis.eu/triadb/#latest-release - Athanassios
你想看一下PonyORM。 另外,与此无关的是,在OpenAPI和GH Co-pilot席卷全球的情况下,Stackoverflow变得越来越不相关了。(例如:尽管有十几个人回答了这个问题,但将其标记为不相关) - Louis Duran
12个回答

-2

SQLAlchemy非常强大。但是它不是线程安全的,请确保在使用线程池模式下与CherryPy一起工作时牢记这一点。


2
SQLAlchemy 不是线程安全的,这是真的吗?那么在主要部署为线程模式的 Pyramid 应用程序中如何使用它在 WSGI 上?有没有任何证实这个矛盾的说法。 - Ravi Kumar
1
当然,SQLAlchemy是线程安全的。 - Matthias Urlichs

-6

我会看一下SQLAlchemy

它非常易于使用,你所使用的模型也并不差。 Django使用SQLAlchemy作为其ORM,但单独使用它可以让你发挥其全部实力。

这里有一个小例子,介绍如何创建和选择ORM对象。

>>> ed_user = User('ed', 'Ed Jones', 'edspassword')
>>> session.add(ed_user)
>>> our_user = session.query(User).filter_by(name='ed').first() 
>>> our_user
    <User('ed','Ed Jones', 'edspassword')>

18
Django并未使用SQLAlchemy作为其ORM。虽然有些工作已经进行了,使得SQLAlchemy成为可选的ORM,但目前还未完善。 - sherbang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接