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中的命令行参数解析工具之docopt详解
Mar 27 Python
基于Python闭包及其作用域详解
Aug 28 Python
Python语言的变量认识及操作方法
Feb 11 Python
Django中Model的使用方法教程
Mar 07 Python
解决Mac安装scrapy失败的问题
Jun 13 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
python的debug实用工具 pdb详解
Jul 12 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
通过实例简单了解python yield使用方法
Aug 06 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
python 闭包函数详细介绍
Apr 19 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
超级实用的7个PHP代码片段分享
2012/01/05 PHP
PHP以及MYSQL日期比较方法
2012/11/29 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
PHP 面向对象程序设计之类属性与类常量实现方法分析
2020/04/13 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python有序查找算法之二分法实例分析
2017/12/11 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
解决Python selenium get页面很慢时的问题
2019/01/30 Python
python批量创建指定名称的文件夹
2019/03/21 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
方法名是否可以与构造器的名字相同
2012/06/04 面试题
一份软件工程师的面试试题
2016/02/01 面试题
如何写出好的Java代码
2014/04/25 面试题
平面设计自荐信
2013/10/07 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
房产公证书范本
2014/04/10 职场文书
会议欢迎词
2015/01/23 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
钱学森观后感
2015/06/04 职场文书
医院保洁员管理制度
2015/08/05 职场文书
Go timer如何调度
2021/06/09 Golang
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android