3.2 Python连接数据库
3.2 Python3 MySQL 数据库连接3.2.1.什么是 PyMySQL?3.2.2 PyMySQL安装3.2.3 数据库连接3.2.4 数据库查询
3.2 Python3 MySQL 数据库连接
3.2.1.什么是 PyMySQL?
PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
3.2.2 PyMySQL安装
PyMySQL下载地址:https://github.com/PyMySQL/PyMySQL。
使用pip命令进行安装:
$ pip install PyMySQL
使用 git 命令下载安装包安装(你也可以手动下载):
$ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL/ $ python3 setup.py install
3.2.3 数据库连接
通过如下代码测试数据库连接
import pymysql
db
= pymysql
.connect
(host
="localhost",user
="root",password
="",db
="mydb",charset
="utf8")
cursor
= db
.cursor
()
cursor
.execute
("SELECT VERSION()")
data
= cursor
.fetchone
()
print ("Database version : %s " % data
)
db
.close
()
执行数据查询:
import pymysql
db
= pymysql
.connect
(host
="localhost",user
="root",password
="",db
="mydb",charset
="utf8")
cursor
= db
.cursor
()
sql
= "select * from stu where classid='%s'"%("python03")
try:
cursor
.execute
(sql
)
print("本次查询条数:",cursor
.rowcount
)
'''
# 使用fetchone()方法获取单条数据.
while True:
data = cursor.fetchone();
if data == None:
break;
print (data)
'''
alist
= cursor
.fetchall
()
for vo
in alist
:
print(vo
)
except Exception
as err
:
print("SQL执行错误,原因:",err
)
db
.close
()
执行数据添加
import pymysql
db
= pymysql
.connect
(host
="localhost",user
="root",password
="",db
="mydb",charset
="utf8")
cursor
= db
.cursor
()
data
= ("uu100",28,'w','python05')
sql
= "insert into stu(name,age,sex,classid) values('%s','%d','%s','%s')"%(data
)
try:
m
= cursor
.execute
(sql
)
db
.commit
()
print("成功操作条数:",m
)
except Exception
as err
:
db
.rollback
()
print("SQL执行错误,原因:",err
)
db
.close
()
执行删除操作
import pymysql
db
= pymysql
.connect
(host
="localhost",user
="root",password
="",db
="mydb",charset
="utf8")
cursor
= db
.cursor
()
sql
= "delete from stu where id=%d"%(100)
try:
cursor
.execute
(sql
)
db
.commit
()
print("成功删除条数:",cursor
.rowcount
)
except Exception
as err
:
db
.rollback
()
print("SQL执行错误,原因:",err
)
db
.close
()
3.2.4 数据库查询
Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。
fetchone(): 该方法获取下一个查询结果集。结果集是一个对象,最后返回None结束
fetchall(): 接收全部的返回结果行.
rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数
------------------------------------------------------------
列出已安装的包:
$ pip list
$ pip freeze # 查看自己安装的
安装软件(安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号)**
$ pip install SomePackage
$ pip install 'Markdown<2.0'
$ pip install 'Markdown>2.0,<2.0.3'
卸载软件pip uninstall SomePackage
$ pip uninstall SomePackage
下载所需的软件包:
$ pip download SomePackage -d directory
例如下载PyMySQL软件包
$ pip download PyMySQL -d D:/pypackage
安装下载好的软件包文件
$ pip install 目录/软件包文件名
如安装PyMySQL软件包
$ pip3.6 install D:/pypackage/PyMySQL-0.7.11-py2.py3-none-any.whl