我发现在设置数据库模式和运行简单查询时,我更喜欢使用SQLAlchemy的ORM。但有时对于涉及复杂连接的查询,使用纯SQL和engine.execute
更容易,并且(我认为)更易读。
这种做法有什么明显的错误吗?
答案 0 :(得分:2)
除非软件开发不起作用,否则任何处理软件开发的方法都没有“错误”。几乎所有东西都有权衡。现在,很明显,大多数人都同意的是不良做法(例如使用GOTO,并且仍有一些人会在那里做出论证),但基本上所有事情之后只是意见。而StackOverflow试图远离“意见”(或者至少明确地承认它们)。有一些人会说使用ORM是一种“坏习惯”或“反模式”!
因此,不可能做出一个通用,全面,正确的答案。但是,有一些事情要考虑:
正如您所看到的,一个项目选择一种方式是完全合法的,而另一个项目则选择另一种方式。在同一个项目中使用这两种方法也是合法的。 SQLAlchemy本身使您能够选择如何使用它,利用该选择以最适合您和您的特定情况的方式使用它。
答案 1 :(得分:2)
虽然它没有任何问题,但实际上它可能是某些特定情况下的最佳方式,但总的来说并不鼓励。使用SQLAlchemy的一个要点是它抽象出数据库之间的差异;编写显式SQL可能会不必要地将您绑定到一个数据库。一旦你习惯了它,使用ORM查询就像现在为你编写SQL一样简单。