从php过渡到python/pylons/SQLAlchemy - 现在ORM是标准吗?

Emp*_*nes 1 python sql orm sqlalchemy

我是否应该投入大量时间试图找出ORM风格的实现,或者只是坚持使用python/pylons/sqlalchemy中的标准SQL查询?

Ale*_*lli 8

ORM非常受欢迎,原因有几个 - 例如:有些人宁愿不学习SQL,ORM可以轻松地在不同的SQL方言之间移植,它们可以更加顺畅地适应大多数OOP风格的应用程序,甚至可以简化一些移植对于 SQL实现(例如,如果存储访问层依赖于SQL语句,将Django应用程序移动到Google App Engine将会更加有效 - 因为它依赖于ORM,这会减少一些所需的移植工作) .

SQLAlchemy是我对Python所知道的最强大的ORM - 它允许你在几个可能的级别工作,从一个非常抽象的声明式一直到在一些查询中注入实际的SQL,你的分析工作已经确定它会产生很大的不同(我认为大多数人主要在中间层使用它,它基本上介于OOP和关系样式之间,就像其他ORM一样).

你没有在这个问题上询问我的个人意见,这有点像我上面总结的流行的一样 - 我从来没有真正喜欢任何类型的"代码生成器"(当一切顺利时它们会提高你的生产力...但是当您发现自己调试问题[[包括性能瓶颈]]时,由于发生器努力提供的抽象级别之下发生的问题,您可以感兴趣地支付回报.

当我有机会使用一个好的关系引擎,比如PostgreSQL时,我相信我总体上比任何ORM都更有效率(包括SQLAlchemy,尽管它具有许多令人钦佩的品质).但是,我不得不承认,当关系引擎不是那么好时(例如,我从来不喜欢 MySQL),或者移植到非关系部署是一个重要的考虑因素时,情况就不同了.

所以,回到你的实际问题,我确实认为,总的来说,投入时间掌握SQLAlchemy是一个好主意,花时间.