Python访问关系数据库

一、python如何访问关系数据库

常见的关系数据库有Oracle、MySql、SQLServer、PostgreSQL、SQLite、Gadfly等。

Python应用程序就是通过python数据库适配器访问这些关系数据库的。所谓的python数据库适配器,其实就是python模块,它向python应用程序提供了一组API接口,用来操作该数据库。

这里的python数据库适配器,更确切地说,可称为“python的某数据库适配器”,比如python的mysql适配器,python的oracle适配器等等。其中,python的mysql适配器,就是指python的一个模块,向python应用程序提供一组API接口,用来操作mysql数据库。python的oracle适配器、python的PostgreSQL适配器等等类似。

二、Python DB-API

(一)为什么引入Python DB-API

对于支持的数据库,python都有一个或多个适配器,这些适配器是由某组织或个人开发的。各个适配器提供的API接口可能数量不同、名称不同、功能各异等等,非常混乱。如果某项目需要更换数据库时,则需要对代码做大量的修改,非常不方便。
为了解决上述问题,引入了Python DB-API。

(二)Python DB-API是什么

Python DB-API是一个标准规范,它是python数据库适配器需要遵循的API接口规范。也就是说,所有python数据库适配器提供的API接口都要符合该标准规范(当然,python DB-API不仅仅包含API接口规范)。这样,当更换数据库时,代码更改量大大减少了。

特别提示:python数据库适配器并不是被强制要求遵循该规范的,但如果不遵循该规范容易引起上述问题(更换数据库时不方便等等)。

(三)Python DB-API的内容(即具体规范了什么)

Python DB-API标准规范要求,适配器必须提供以下功能和属性。
1、apilevel
api版本,该字符串指明了适配器需要支持的DB-API最高版本。
2、threadsafety
线程安全,该整型值指明了适配器对线程的支持情况。
3、paramstyle
参数风格,该字符串用于指定构建查询行或命令时使用的字符串替代形式。
4、connect()
适配器必须要实现该函数,该函数创建并返回一个Connection对象。Connection 应当定义以下几个方法:cursor()、close()、commit()等等。
5、异常
适配器必须遵循DB-API关于异常的相关内容。
6、其它

特别提示:关于DB-API规范的详细内容可参考《python核心编程》、http://wiki.python.org/moin/DbApi3、http://python.org/topics/database等

(四)常用的python数据库适配器

目前,对于每种支持的数据库,Python都有一个或多个遵循DB-API规范的适配器。比如 Sybase、SAP、Oracle 和 SQLServer 这些数据库就都存在多个遵循DB-API标准的适配器。对于开发者来说,我们要做的就是挑选出最合适的适配器。

  • 常用的python的mysql适配器有pymysql、mysqlconnector等
  • 常用的python的PostgreSQL适配器有psycopg等
  • 常用的python的SQLite适配器有sqlite3等

(五)遵循Python DB-API规范的适配器的使用方法

一般来说,遵循Python DB-API规范的适配器的使用方法都是类似的,下图是使用流程:
Python访问关系数据库_第1张图片(上图来自 https://blog.csdn.net/weixin_37972723/article/details/80425446)

三、ORM

(一)为什么引入ORM

现在,有很多不同的数据库系统,并且大部分数据库系统都有python接口(即python数据库适配器),使得python应用程序能够访问相应的数据库系统。但是,这些python数据库适配器有一个共同的缺点,就是需要python应用程序开发者掌握SQL语句。

现实中,有很多开发者对SQL语句并不是很熟悉,也有很多开发者不愿使用SQL语句,为了方便这些开发者,减轻开发者的负担,引入了对象关系映射ORM。

(二)ORM是什么

对象关系映射ORM,就是将python数据库适配器中的SQL语句进行抽象化处理,将SQL语句的功能用对象来实现。操作这些对象就能完成与SQL语句相同的功能。

在ORM实现中,数据库表被转化为Python类,表中的数据列作为字段,数据库操作(如增删查改等)则作为方法,每一行数据被抽象成一个该类的对象,这样,操作python对象就能实现与SQL语句相同的功能了。

(三)常用的Python ORM

目前,最常用的Python ORM有SQLAlchemy、SQLObject等。但是,在选择哪种Python ORM时要根据实际情况而定。

(四)SQLAlchemy的使用

可参考网址:
1、https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320114981139589ac5f02944601ae22834e9c521415000
2、http://www.cnblogs.com/stacklike/p/8192919.html
3、http://www.cnblogs.com/stacklike/p/8192999.html
4、https://www.jianshu.com/p/0d234e14b5d3

你可能感兴趣的:(python)