Python 为什么要使用炼金术?编码很方便吗?

Python 为什么要使用炼金术?编码很方便吗?,python,sql,database,sqlalchemy,Python,Sql,Database,Sqlalchemy,由于非常熟悉用Python编写简单的SQL,我还没有意识到使用SQLAlchemy或其他ORM会带来什么好处 它是为那些不喜欢程序中的SQLs的人设计的吗?还是让脚本跨越不同类型的数据库 还是它让你的脚本更像蟒蛇 或者,对于处理底层数据库的某些任务来说,它是非常方便的,它会自动为您执行许多繁琐的操作,所以您只需编写2-3行代码调用SQLAlchemy,它就可以为您执行所有繁琐的数据库操作 如果有人能够提供代码来演示使用普通SQL与使用SQLALchemy的区别,并展示与普通SQL相比的优势,这将

由于非常熟悉用Python编写简单的SQL,我还没有意识到使用SQLAlchemy或其他ORM会带来什么好处

它是为那些不喜欢程序中的SQLs的人设计的吗?还是让脚本跨越不同类型的数据库

还是它让你的脚本更像蟒蛇

或者,对于处理底层数据库的某些任务来说,它是非常方便的,它会自动为您执行许多繁琐的操作,所以您只需编写2-3行代码调用SQLAlchemy,它就可以为您执行所有繁琐的数据库操作

如果有人能够提供代码来演示使用普通SQL与使用SQLALchemy的区别,并展示与普通SQL相比的优势,这将是非常有价值的

谢谢

你检查过这个了吗?

此外,还比较了Django ORM和SQL Alchemy:

将响应表单粘贴到上面的google groups链接:

马克·埃尔堡2010年11月22日

<>我没有任何示例代码,但是我用普通SQL编写了几个Python应用程序(和一个C++应用程序) 开始使用SQLAlchemy开发新应用程序,因此我将分享我的 经验

让我补充一点,我花了几年时间维持一个中等大小的 SQL数据库,并编写了大量纯SQL,但不一定使用 蟒蛇

当我的程序访问SQL时,我发现自己编写了很多SQL代码 访问数据。很多代码虽然不完全相同,但非常简单 类似的,似乎是多余的。例如,以一个简单的单表为例 查找。如果您想执行简单的CRUD(创建、更新和删除),您可以 必须为每个表编写至少三条单独的SQL语句。 虽然这些SQL语句的框架相似,但具体的 列名和表名不同。最后我写了一些 如果我提供了 列和表名的列表。但这就是炼金术的作用 (还有更多)那么为什么要重新发明轮子呢

在我的C++应用程序(我没有找到合适的ORM)的情况下,我结束了 编写Python脚本生成SQL语句和C++代码 访问表

另一个优点是相对容易处理 数据库结构的更改。在开发SA应用程序时,我 意识到我需要(至少)在我的一个表中添加一个新列。 我使用SA的声明性方法,只需添加列 对我的声明。我不需要更改任何SQL或Python代码

我在SQLAlchemy中遇到的一个“问题”是忘记了我以前的学习方式 使用纯SQL的东西。在最简单的层次上,SQLAlchemy可以生成 SQL和Python代码访问单个表,您可能 试图编写Python代码来合并这种单表访问 进入更大的数据图,但SQLAlchemy的真正威力(IMHO)是 它可以自动处理复杂的数据图

标记