python怎么与mysql、sqlite数据库通信——适配器:DB-API

1 数据库类型

  • 文件或简单的持久化存储:可以满足一些小应用的需求;
  • 数据库系统:适用于大型服务器或高数据容量的应用;
  • 混合类型:包括现有系统上的API、ORM、文件管理器、电子表格、配置文件等。

2 数据库和Python

访问数据库包括:

  • DB-API,即直接通过数据库接口访问;
  • 使用ORM 访问,它不需要显式给出SQL 命令,但也能完成相同的任务。
应用与数据库的多层通信。第一个框一般是C/C++程序,而在Python 中应用程序使用DB-API 兼容的适配器。ORM 可以通过处理数据库具体细节来简化应用

3 Python 的DB-API

该API 为不同的关系数据库提供了一致性的接口,并且使不同数据库间移植代码变得更加简单,通常只需要修改几行代码即可。

3.1 DB-API模块属性

DB-API模块属性

3.2 Connection 对象

应用程序与数据库之间进行通信需要建立数据库连接。它是最基本的机制,只有通过数据库连接才能把命令传递到服务器,并得到返回的结果。

当一个连接(或一个连接池)建立后,可以创建一个游标,向数据库发送请求,然后从数据库中接收回应

connection对象没有属性只有方法

connection对象的方法

3.3 Cursor 对象--游标

游标可以让用户提交数据库命令,并获得查询的结果行。Python DB-API 游标对象总能提供游标的功能,即使是那些不支持游标的数据库。

游标对象最重要的属性是execute()和fetch()方法,所有针对数据库的服务请求都是通过它们执行的。

arraysize 数据属性在为fetchmany()设置默认大小时非常有用。

当然,在不需要时关闭游标是个好主意, 而如果你的数据库支持存储过程,可能会用到callproc()。

Cursor 对象属性

3.4 数据库适配器的示例

3.4.1 安装 MySQL 适配器(MySQLdb模块)及mysql数据库

如果执行:

>>>import MySQLdb

提示没有MySQLdb模块,则需要安装。

针对不同系统更详细的安装请移步:https://stackoverflow.com/questions/454854/no-module-named-mysqldb

这是ubantu安装MySQLdb的方法,执行命令:sudo apt-get install python-mysqldb(python-mysqldb即为 MySQL 适配器):

ubantu安装MySQLdb的命令

查看是否安装好,用pip list,列出所有已安装的程序:

Paste_Image.png

载入MySQLdb模块成功!


Paste_Image.png

Good!!

引入MySQLdb成功,通过python就可以对mysql数据库进行操作,详见http://www.jianshu.com/p/495891f00404

3.4.2 安装 sqlite3 适配器

方法很简单,在python中输入:
>>>import sqlite3
即可,但是如果没有安装sqlite数据库,仍需要先安装才行,具体方法见:http://www.jianshu.com/p/f0568f126153

安装好sqlite后,用python适配器sqlite3进行连接,并新建数据库。新建时,注意标明路径,按照书上做的不行

Paste_Image.png

创建表user表:CREATE TABLE user(login VARCHAR(8),userid INTEGER)

Paste_Image.png

为user表格添加人员:

Paste_Image.png

查看user表;删除表;关闭游标;断开连接;


Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容