首页 / 知识
什么是一些优秀的Python ORM解决方案?
2023-04-14 18:57:00

What are some good Python ORM solutions?我正在评估并考虑使用CherryPy进行一个项目,该项目基本上是来自客户端(浏览器)的JavaScript前端,后端与后端的Python Web服务对话。 所以,我真的需要在后端快速轻量级的东西,我可以用Python实现,然后通过ORM(浏览器的JSON)与PostgreSQL DB对话。 我也在看Django,我喜欢它,因为它的ORM是内置的。 但是,我认为Django可能比我真正需要的多一点(即比我真正需要的更多功能==更慢?)。 任何人都有使用不同Python ORM解决方案的经验,可以比较和对比他们的特性和功能,速度,效率等?
如果您正在寻找轻量级并且已经熟悉django风格的声明模型,请查看peewee: 例:
查看文档以获取更多示例。 SQLAlchemy功能更强大,功能更强大(使用DataMapper模式)。 Django ORM具有更清晰的语法,更易于编写(ActiveRecord模式)。我不知道性能差异。 SQLAlchemy还有一个声明层,它隐藏了一些复杂性,并为它提供了一个类似于Django ORM的ActiveRecord样式语法。 我不担心Django"太重了"。它已经足够分离,你可以使用ORM,而不必导入其余的东西。 也就是说,如果我已经将CherryPy用于Web层并且只需要一个ORM,我可能会选择SQLAlchemy。 Storm可以说是最简单的API:
当你需要时,它可以轻松地下载到原始SQL:
我通常使用SQLAlchemy。它非常强大,可能是最成熟的python ORM。 如果你打算使用CherryPy,你也可以看看dejavu,因为它是Robert Brewer(当前CherryPy项目负责人)。我个人没有用它,但我确实知道有些人喜欢它。 SQLObject比SQLAlchemy更容易使用ORM,但它不是那么强大。 就个人而言,除非我计划在Django中编写整个项目,否则我不会使用Django ORM,但那只是我。 SQLAlchemy的声明性扩展,在0.5中成为标准扩展,提供了一个非常像Django或Storm的一体化界面。它还与使用datamapper样式配置的类/表无缝集成:
我们使用Elixir和SQLAlchemy,并且到目前为止一直喜欢它。 Elixir在SQLAlchemy上放置了一个层,使其看起来更像是"ActiveRecord模式"计数器部分。
这似乎是Python中高级数据库交互的规范参考点: 从那里开始,看起来Dejavu在Python中相当抽象地实现了Martin Fowler的DataMapper模式。 Django中未使用的功能无法实现性能损失。如果您决定升级该项目,可能会派上用场。 我想你可能会看一下: 秋季 风暴 我将Storm + SQLite用于一个小项目,并且在我添加多处理之前对它非常满意。尝试使用来自多个进程的数据库导致"数据库被锁定"异常。我切换到SQLAlchemy,相同的代码没有问题。 SQLAlchemy非常非常强大。但是,它不是线程安全的,确保在线程池模式下使用cherrypy时要记住这一点。 我查看SQLAlchemy
它非常易于使用,与您合作的模型也不错。 这是一个关于创建和选择orm对象的小例子
|
最新内容
相关内容
linux安装浏览器命令?
linux安装浏览器命令?,官网,系统,平台,网站,管理,设备,咨询,工具,官方网站,软件,linuxcentos浏览器在哪里1、linux安装google浏览器方法如下:启linux命令测试客户端?
linux命令测试客户端?,地址,系统,网络,工具,工作,分析,环境,命令,下行,资料,linux测试网速的工具1、speedtest-cli是一个用Python编写的轻量级linux命令创建项目组?
linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文件夹,linux命令中用root用户新建一个user1用户,新建一个group1的组复制项目的linux命令?
复制项目的linux命令?,系统,项目,文件,命令,目录,源文件,语法,选项,目标,功能,在Linux操作系统中复制文件或目录时使用的命令是()。1、在Linuxlinux启动浏览器命令?
linux启动浏览器命令?,系统,情况,发行,不了,官网,环境,工具,传播,基础,软件,如何使用linux命令打开网页在命令符界面浏览网页可以使用lynx,linklinux命令项目部署?
linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎么把php部署到apache服务器上linux?1、在linux部署php项目的方法:linux默认浏览器命令?
linux默认浏览器命令?,环境,系统,发行,工程,工具,浏览器,软件,情况,网站,管理系统,如何在Linux环境下,使用Java打开默认浏览器退出firefox。删linux部署项目的命令?
linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,Linux部署springBoot项目并且查看控制台日志指定路径:如下: /data/wlinux命令下载浏览器?
linux命令下载浏览器?,软件,系统,官网,网站,工具,名称,中心,密码,时间,设计,linux怎样安装google浏览器?1、打开linux虚拟机,启动火狐浏览器,在linux项目常用命令?
linux项目常用命令?,工作,地址,系统,信息,管理,项目,命令,目录,标准,网络,linux常用的20个命令系统管理相关命令:df、top、free、quota、at、lplinux项目更新命令?
linux项目更新命令?,系统,信息,网络,地址,网站,通信,管理,时间,项目,命令,linux必学的60条命令是什么?压缩和解压缩:tar:打包或解包文件。gzip:压启动项目命令linux?
启动项目命令linux?,工作,经理,产品,技术,地址,数字,系统,项目,命令,信息,怎么在linux启动的时候执行一个命令?1、在启动时执行 Linux 脚本 有