Python操作MySQL的驱动有哪些?

Python010

Python操作MySQL的驱动有哪些?,第1张

使用Python操作MySQL数据库的方式(驱动)有很多种,比如:PyMySQL、MySQLdb、mysqlclient、SQLAlchemy等等

MySQLdb

MySQLdb是 Python 连接 MySQL 最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持 Python2.x,它是基于C开发的库,和Windows 平台的兼容性不友好,现在基本不推荐使用,取代的是它的衍生版本。

mysqlclient

由于 MySQLdb 年久失修,后来出现了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同时支持 Python3.x,是 Django ORM的依赖工具,如果你想使用原生 SQL 来操作数据库,那么推荐此驱动。

PyMySQL

PyMySQL是纯 Python 实现的驱动,速度上比不上 MySQLdb,最大的特点可能就是它的安装方式没那么繁琐,同时也兼容 MySQLdb。

SQLAlchemy

SQLAlchemy是一种既支持原生 SQL,又支持 ORM 的工具,它非常接近 Java 中的 Hibernate 框架。

作为一个测试人员,数据库的操作也必须是要掌握的,如果想系统的学习接口测试相关的技术,可以了解一下黑马程序员的软件测试课程,里面讲的非常详细。

python操作数据库PostgreSQL

1.简述

python可以操作多种数据库,诸如SQLite、MySql、PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前

项目中用到的PostgreSQL做一下简单介绍,主要包括python操作数据库插件的选择、安装、简单使用方法、测试连接数据库成功。

2.数据库操作插件的选择

PostgreSQL至少有三个python接口程序可以实现访问,包括PsyCopg、PyPgSQL、PyGreSQL(PoPy已经整合在PyGreSQL中),三个接口程序各有利弊,需要根据实践选择最适合项目的方式。

推荐使用PsyCopg,对python开发框架的兼容性都很好,本文中我们只讨论这个插件。

3.PsyCopg的下载

官网下载psycopg2-2.5.1.tar.gz:http://initd.org/psycopg/

本文使用windows系统开发,未使用官网版本,选择psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe版,地址:http://vdisk.weibo.com/s/Cd8pPaw56Ozys

4.PsyCopg的安装

直接exe,根据提示安装即可.

5.PsyCopg的使用

py文件代码:

__author__ = 'qiongmiaoer'

import psycopg2

# 数据库连接参数

conn = psycopg2.connect(database="platoon", user="postgres", password="postgres", host="192.168.10.80", port="5432")

cur = conn.cursor()

cur.execute("CREATE TABLE test(id serial PRIMARY KEY, num integer,data varchar)")

# insert one item

cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (1, 'aaa'))

cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (2, 'bbb'))

cur.execute("INSERT INTO test(num, data)VALUES(%s, %s)", (3, 'ccc'))

cur.execute("SELECT * FROM test")

rows = cur.fetchall()# all rows in table

print(rows)

for i in rows:

print(i)

conn.commit()

cur.close()

conn.close()

可参考psycopg官方文档,介绍postgresql的使用

http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries

6. 输出结果 

"C:\Program Files (x86)\Python275\python.exe" E:/PycharmProjects/psycopgPyCharm/xiaoyu/temp.py

[(1, 1, 'aaa'), (2, 2, 'bbb'), (3, 3, 'ccc')]

(1, 1, 'aaa')

(2, 2, 'bbb')

(3, 3, 'ccc')

Process finished with exit code 0

7.分析

在插件psyCopg安装后,在python命令下import

psycopg2,即可使用psycopg2中的方法对数据库,根据测试结果的输出可以看到我们成功地连接到了数据库,创建了名为test的table,

添加了三条数据,并成功读取和输出数据,最后将查询到的数据输出print出来。

ps:

项目环境

windows8

python2.7.5

pyCharm2.7.3(开发环境)

psycopg2-2.4.2(插件)

方法一:使用Flask等框架

将查询结果赋值给users

使用params=Locals()传递给HTML页面,

在页面中,使用循环,接收数据:

{% for u in params.users %}

<li>

<div class="gold-list-row-1">{{u.id}}</div>

<div class="gold-list-row-2">{{u.name}}</div>

<div class="gold-list-row-3">{{u.sfzh}}</div>

<div class="gold-list-row-4">{{u.age}}</div>

<div class="gold-list-row-5">{{u.gender}}</div>

</li>

{% endfor %}

=========================

方法二:直接使用pymysql 执行SQL语句

将查询结果赋值给users,由于结果里users包含的是元组,前台调用时使用

{{u[0]}}

{{u[1]}}

{{u[2]}}

...