背景:上一篇文章可以看到,Python有了DB-API,编程贼方便,唯一的缺点就是需要程序员了解SQL(虽然在我看来这是必须的),但是就有的同学不愿意了解sql,而是更愿意操作Python对象,那怎么办?使用ORM呀~
一、什么是ORM?
ORM(Object relational mapper)指对象关系映射模型,展现了一种将用户定义的类映射到数据库中表的方法,将数据库的行映射为类的实例,将数据库字段映射为属性,开发同学只需要操作Python对象就能操作数据库,可以更加专注于业务逻辑的处理,提高开发效率。
但是ORM也有一定的缺点,它无法创建和删除数据库,一些复杂的数据库操作无法完成。
二、常见ORM框架
目前最知名的Python ORM是SQLAlchemy和SQLObject,两者均需要下载及安装 PyPI · The Python Package Index。SQLObject更简单,而SQLAlchemy中对象的抽象化十分完美,但是学习曲线较长,这里简单介绍下SQLAlchemy。
SQLAlchemy框架建立在数据库API之上,使用关系对象映射进行数据库操作,将对象转换成SQL,操作数据库API执行SQL并获取执行结果。大体流程分6步,如下:
1、连接数据库,不同数据库配置不同,调用的数据库API不同,格式为'数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'。
MySQL-Python
mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
pymysql
mysql+pymysql://<username>:<password>@<host>[:<port>]/<dbna