如何使用Python3.4连接MySQL

Python011

如何使用Python3.4连接MySQL,第1张

序号    描述  

1    去github上下载pymysql的安装包pymysql  

2    解压到某个盘符下  

3    打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setup.py install  

4    在程序里,导入pymysql  

5    开始连接数据库  

数据库操作的API文档连接:http://legacy.python.org/dev/peps/pep-0249/ 

代码如下: 

Python代码

__author__ = 'qindongliang'

#导入pymysql的包

import pymysql

try:

#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库

conn=pymysql.connect(host='localhost',user='root',passwd='qin',db='person',port=3306,charset='utf8')

cur=conn.cursor()#获取一个游标

cur.execute('select * from person')

data=cur.fetchall()

for d in data :

#注意int类型需要使用str函数转义

print("ID: "+str(d[0])+'  名字: '+d[1]+"  性别: "+d[2])

cur.close()#关闭游标

conn.close()#释放数据库资源

except  Exception :print("发生异常")

结果如下: 

Java代码

D:\python\python.exe D:/pythonide/pythonprojectworkspace/python/mysql.py

ID: 1  名字: 秦天  性别: 男

ID: 2  名字: 王晶  性别: 女

Process finished with exit code 0  

原文  http://qindongliang1922.iteye.com/blog/2096512

补充说明:

mysqldb作为python连接mysql数据库的工具,但是mysqldb目前支撑的版本较低,安装失败。所以才尝试pymysql,这个比较简单易用

软件下载地址:

python3.2.5:https://www.python.org/ftp/python/3.2.5/python-3.2.5.msi

pymysql3.0.5:https://pypi.python.org/packages/source/P/PyMySQL3/PyMySQL3-0.5.tar.gz

mysql:http://www.phpstudy.net/phpstudy/phpStudyLite.zip(为了方便安装,我这里选择phpstudy)

1、python安装目录设定为d:/python32

2、pymysql安装方法为:解压下载的文件,在cmd中运行: python setup.py install。

检验安装安装是否成功的方法:import pymysql  。  如果不报错 说明安装成功。

3、mysql安装目录为D:/phpStudy/MySQL。为避免更多配置问题,可在启动phpstudy后,将其设为系统服务

4、基本操作:

(1)导入pymysql: import pymysql

(2)连接数据库: conn=pymysql.connect(host='localhost',user='root',passwd='root',db='ere',charset='utf8')    务必注意各等号前面的内容!charset参数可避免中文乱码

(3)获取操作游标:cur=conn.cursor()

(4)执行sql语句,插入记录:sta=cur.execute("insert 语句")  执行成功后sta值为1。更新、删除语句与此类似。

(5)执行sql语句,查询记录:cur.execute("select语句") 执行成功后cur变量中保存了查询结果记录集,然后再用循环打印结果:

for each in cur:

print(each[1].decode('utf-8'))     # each[1] 表示当前游标所在行的的第2列值,如果是中文则需要处理编码

在python里面可以操作linux的命令有

1,os.system("cmd")

2,os.open("cmd")

3,spawn*

4,subprocess

在最新的python里,推荐使用subprocess来与shell通信,它会生成一个子进程来连接输出,输入,错误等shell下3中标准的输入输出流,并返回执行结果的状态码0和1,来判断本次执行命令的成功与失败。

下面来看一个小例子,首先,确保你的linux环境支持python3.4,如果不支持,你可以参考散仙的上篇文章来安装python3.4

首先,在linux,执行python命令找到最新的python3.4的路径,然后再py文件里声明头部路径,如果不知道python的具体安装路径,可以使用which

python来查找路径

[root@master

~]#

py

pydoc

pydoc3.4

python2

python3

python3.4-config

python3.4m-config

pyvenv

pydoc3

python

python2.6

python3.4

python3.4m

python3-config

pyvenv-3.4

[root@master

~]#

which

python3.4

/usr/local/python3.4/bin/python3.4

[root@master

~]#

写完脚本之后,先给脚本赋值权限,再执行:

[root@master

rtt]#

chmod

+x

b.py

[root@master

rtt]#

cat

b.py

#!/usr/local/python3.4/bin/python3.4

import

subprocess

as

t

v=t.call("ls")

print

("返回值:

",v)

[root@master

rtt]#

b.py

a.py

b.py

b.txt

返回值:

0

[root@master

rtt]#

看下面的例子,注意python的shell执行,返回的是一个字符串,如果我们想逐行解析,需要使用如下方法:

[root@master

rtt]#

cat

b.txt

id

name

1

a

2

战三

3

b

[root@master

rtt]#

cat

a.py

#!/usr/local/python3.4/bin/python3.4

import

os

import

subprocess

as

t

#var=t.getoutput("df

-h")

#v=t.call("ls")

#var=t.getoutput("cat

b.txt

|

grep

a

")

var=t.getoutput("df

-h

|

cat

-n

")

for

line

in

var.split("\n"):

print("这一行:"

+line)

#print(var)

[root@master

rtt]#

a.py

这一行:

1

Filesystem

Size

Used

Avail

Use%

Mounted

on

这一行:

2

/dev/sda2

9.7G

2.9G

6.3G

32%

/

这一行:

3

tmpfs

495M

0

495M

0%

/dev/shm

这一行:

4

/dev/sda1

194M

28M

157M

15%

/boot

这一行:

5

/dev/sda3

9.9G

948M

8.5G

10%

/home

[root@master

rtt]#

最后看下python的两种,生成行号的方式:

tt="你好\n哈喽"

for

i,it

in

enumerate(tt.split("\n")):

print(i,it)

for

line

in

range(len(tt.split("\n"))):

print(line,"

",tt.split("\n")[line])

输出结果如下:

0

你好

1

哈喽

0

你好

1

哈喽