MySQL适配器PyMySQL详解


Posted in Python onSeptember 20, 2017

本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。

什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装
在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

$ git clone https://github.com/PyMySQL/PyMySQL
$ cd PyMySQL/
$ python3 setup.py install

2、数据库操作实例,直接上代码。

import pymysql
import datainfo
import time

#获取参数

host = datainfo.host
username = datainfo.username
password = datainfo.password
database = datainfo.db

print()

#测试数据库连接
def testconnect():

 #打开数据库链接

 db = pymysql.connect(host,username,password,database)

 #使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 #使用execute()方法执行SQL查询

 cursor.execute("select version()")

 #使用fetchone ()获取单条数据

 data = cursor.fetchone()

 print(data)

 db.close()

#插入数据库
def InsertDate():
 #打开数据库链接

 db = pymysql.connect(host,username,password,database,charset='utf8')

 #使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 create_time = time.strftime('%Y-%m-%d %H:%M:%S')
 update_time = time.strftime('%Y-%m-%d %H:%M:%S')
 start_time = time.strftime('%Y-%m-%d %H:%M:%S')
 end_time = time.strftime('%Y-%m-%d %H:%M:%S')
 remark = "测试插入信息"
 print("开始")
 #Sql 插入语句
 sql = "insert into demo(start_time,end_time,creat_time,update_time,remark) " \
   "VALUES ('%s','%s','%s','%s','%s')"\
   %(start_time,end_time,create_time,update_time,remark)
 try:
  #执行sql
  print("执行插入")
  tt = cursor.execute(sql)
  print(tt)
  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()


#查询操作
def selectData():
 db = pymysql.connect(host, username, password, database, charset='utf8')

 # 使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 sql = "select * from demo where id >='%d'" %(1)
 try:
  #执行sql
  print("执行查询")
  cursor.execute(sql)
  results = cursor.fetchall()
  for row in results:
   id = row[0]
   start_time = row[1]
   end_time = row[2]
   create_time = row[3]
   update_time = row[4]
   remark = row[5]
   #打印结果
   print("id = %d,start_time=%s,end_time=%s,create_time=%s,update_time=%s,remark=%s" %(id,start_time,end_time,create_time,update_time,remark))

  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)

 db.close()

#更新操作
def update_data():
 db = pymysql.connect(host, username, password, database, charset='utf8')

 # 使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()
 update_time = time.strftime('%Y-%m-%d %H:%M:%S')
 sql = "update demo set update_time ='%s' where id >='%d' " %(update_time,1)
 try:
  #执行sql
  print("执行更新")
  cursor.execute(sql)

  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()

#删除操作
def delete_Date():
 db = pymysql.connect(host, username, password, database, charset='utf8')

 # 使用cursor() 方法创建一个游标对象 cursor

 cursor = db.cursor()

 sql = "delete from demo where id <'%d' " %(1)
 try:
  #执行sql
  print("执行删除")
  cursor.execute(sql)

  db.commit()
 except UnicodeEncodeError as e :
  #发生错误时回滚
  print(e)
  db.rollback()
 db.close()


if __name__ == '__main__':
 testconnect()
 InsertDate()
 selectData()
 update_data()
 delete_Date()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python调用zxing库生成二维码图片详解
Jan 10 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
python实现机械分词之逆向最大匹配算法代码示例
Dec 13 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
详解Python绘图Turtle库
Oct 12 Python
python装饰器原理与用法深入详解
Dec 19 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
django创建css文件夹的具体方法
Jul 31 Python
常用的Python代码调试工具总结
Jun 23 Python
Python字符串格式化的方法(两种)
Sep 19 #Python
python3 pillow生成简单验证码图片的示例
Sep 19 #Python
Python文件操作之合并文本文件内容示例代码
Sep 19 #Python
使用Python &amp; Flask 实现RESTful Web API的实例
Sep 19 #Python
python基本语法练习实例
Sep 19 #Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 #Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 #Python
You might like
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
微信红包随机生成算法php版
2016/07/21 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
vuejs2.0实现分页组件使用$emit进行事件监听数据传递的方法
2017/02/22 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
python中的__slots__使用示例
2015/02/26 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
python3.4实现邮件发送功能
2018/05/28 Python
python让列表倒序输出的实例
2018/06/25 Python
详解Python3的TFTP文件传输
2018/06/26 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
一些关于MySql加速和优化的面试题
2014/01/30 面试题
建房协议书
2014/04/11 职场文书
2014年六一儿童节演讲稿
2014/05/23 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL