[英]SQLAlchemy or psycopg2?
我正在写一个快速而又脏的脚本,需要与数据库(PG)进行交互。
该脚本是解决现有问题的务实,战术解决方案。 但是,我设想脚本会随着时间的推移逐渐演变成一个更“精致”的系统。 鉴于它目前正在快速组合(即我没有时间倾注大量的文档),我很想通过psycopg走快速而肮脏的路线。
psycopg2的优点(正如我目前所理解的)是:
缺点:
我对SqlAlchemy(慢/解释,臃肿,陡峭的学习曲线)的看法是否真实 - 无论如何,我可以使用sqlAlchemy以“粗略和准备”的方式使用psycopg - 即:
这样做的任何例子都可以吗?
SQLAlchemy是一个ORM,psycopg2是一个数据库驱动程序。 这些是完全不同的东西:SQLAlchemy 生成 SQL语句,psycopg2将SQL语句发送到数据库。 SQLAlchemy依赖于psycopg2或其他数据库驱动程序与数据库进行通信!
作为一个相当复杂的软件层,SQLAlchemy确实增加了一些开销,但它也大大提高了开发速度,至少在你学习了库之后。 SQLAlchemy是一个优秀的库,它将教你整个ORM概念,但如果你不想生成SQL语句,那么你就不需要SQLAlchemy了。
要与数据库交谈,任何人都需要驱动程序。 如果您正在使用SQL Plus等客户端进行oracle,MysqlCLI for Mysql,那么它将直接运行查询,并且该客户端随附DBServer包。
使用java,c,python,C#等语言从外部进行通信...我们需要驱动程序来访问该数据库。 psycopg2是从python运行PostgreSQL查询的驱动程序。
SQLAlchemy是ORM,它与数据库驱动程序不同。 它将为您提供灵活性,因此您可以编写代码而无需任何特定于数据库的标准。 ORM为程序员提供数据库独立性。 如果在ORM中编写object.save
,它将检查哪个数据库与该对象相关联,它将根据后端数据库生成插入查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.