为什么要使用SQLAlchemy?是否非常适合编码?

pyp*_*dbc 40 python sql database sqlalchemy

由于非常熟悉用Python编写纯SQL,我没有意识到使用SQLAlchemy或其他ORM可以获得的好处.

它是专为那些不喜欢程序中的SQL的人设计的吗?或者它是否使您的脚本跨越不同类型的数据库?

或者它使你的脚本更Pythonic?

或者对于处理底层数据库的某些任务来说它是非常有用的,并且它会自动为你做很多繁琐的事情,所以你只需要编写2-3行代码来调用SQLAlchemy并为你完成所有的trival数据库操作?

如果有人能够使用普通SQL和使用SQLALchemy提供代码演示并显示优于纯SQL的优点,那将是非常适用的.

谢谢!

God*_*Man 16

你检查过这个吗? https://groups.google.com/forum/?fromgroups=#!topic/sqlalchemy/VXXB12-3JCY

另外,Django ORM和SQL Alchemy之间的比较:

http://blog.mathieu-leplatre.info/sqlalchemy-a-brave-new-world.html

从上面的google群组链接粘贴响应:

Mark Erbaugh 22/11/2010

我没有任何示例代码,但是我使用纯SQL编写了几个Python应用程序(和一个C++应用程序),并且已经开始使用SQLAlchemy开发新应用程序了,所以我将分享我的经验.

让我补充一点,我花了几年时间维护一个中等大小的SQL数据库并写了很多纯SQL,但不一定使用Python.

当我的程序访问SQL时,我发现自己编写了大量SQL代码来访问数据.很多这些代码虽然不相同,却非常相似,似乎是多余的.例如,进行简单的单表查找.如果要进行简单的CRUD(创建,更新和删除),则必须为每个表编写至少三个单独的SQL语句.虽然这些SQL语句的框架类似,但特定的列名和表名是不同的.我最后编写了一些Python例程,如果我提供了列列表和表名,那么它将构建SQL语句.但这就是SQLAlchemy所做的(以及更多),为什么要重新发明轮子呢?

对于我的C++应用程序(我没有找到合适的ORM),我最终编写了一个Python脚本来生成SQL语句和C++代码来访问这些表.

另一个优点是可以相对轻松地处理数据库结构的更改.当我开发我的SA应用程序时,我意识到我需要在(至少)我的一个表中添加一个新列.我正在使用SA的声明式方法,我只需要将列添加到我的声明中.我没有必要更改任何SQL或Python代码.

我在SQLAlchemy中遇到的一个"问题"就是忘记了我用纯SQL做事的方式.在最简单的层面上,SQLAlchemy可以生成SQL和Python代码来访问单个表,并且您可能想要编写Python代码以将这种单表访问合并到更大的数据图中,但SQLAlchemy的真正功能(IMHO)是它可以自动处理复杂的数据图.

标记