初识Python ORM(对象关系映射)-Django ORM和SQLAlchemy

在学习中,接触到ORM这个概念是因为做一个基于Django的前后台网站,但是一直都只是为了完成项目,很多理论知识没有去详查,只要程序能按要求工作就好。。。
但在之后的一次查资料的情况下发现有一个SQLAlchemy的框架,就产生了一个疑问,这两者有什么区别,我们要如何选择使用?
查看了很多人写的博客之类,还是没有深刻的认识,所以先解决自己的疑问把项目做下去吧。
Django ORM和SQLAlchemy都只是Python ORM的ORM框架,当然还有其他的,这里自行查找。

一、首先,ORM是什么呢?

ORM (Object-Relational-Mapping),即对象关系映射,理解为:

  • 对象:为某对象或编程语言使用了该框架,如python
  • 关系:要使用的数据库
  • 映射:连接上面两者的桥梁

所以ORM是连接数据库和对象的一种技术(有人也理解为实现该技术的库),可以使用面对对象的方式操作数据库。
我首先感受到的优点是,可以降低代码耦合度,当需要修改连接的数据库时,只需要修改绑定的数据库语句,而无需修改数据库操作的语句(如:删除、修改表)。

二、好啦,接下来,Django ORM和SQLAlchemy使用哪一个呢?

如果你对数据库的使用大部分只是创建、读取、更新、删除,不同表之间没有太多复杂的规则(例如:一对多,多对多。。。)可以使用Django ORM实现,因为这个学习起来会更加容易,比如他会自动创建主键。
相反的,如果你的数据库表有太多规则和限制,使用SQLALchemy比较合适,自由度较高,较为灵活。
当然,你可以两者一起使用,具体根据项目的需求。

PS:
上述内容有参考的部分,博客原文*点击此处
SQLAlchemy和Django ORM的代码使用区别:博客链接

你可能感兴趣的:(初识Python ORM(对象关系映射)-Django ORM和SQLAlchemy)