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爬虫
Dec 25 Python
python删除过期文件的方法
May 29 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
python使用__slots__让你的代码更加节省内存
Sep 05 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
浅析Python 引号、注释、字符串
Jul 25 Python
Python统计分析模块statistics用法示例
Sep 06 Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 Python
Python 里最强的地图绘制神器
Mar 01 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
php中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
php实现文本数据导入SQL SERVER
2015/05/17 PHP
PHP实现更改hosts文件的方法示例
2017/08/08 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
php实现的顺序线性表示例
2019/05/04 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python模块导入的细节详解
2018/12/10 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
中班上学期幼儿评语
2014/04/30 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python
90行Python代码开发个人云盘应用
2021/04/20 Python
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers