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实用日期时间处理方法汇总
May 09 Python
Python打包可执行文件的方法详解
Sep 19 Python
python 捕获shell脚本的输出结果实例
Jan 04 Python
Linux RedHat下安装Python2.7开发环境
May 20 Python
python+selenium开发环境搭建图文教程
Aug 11 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python下载微信公众号相关文章
Feb 26 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
Jul 01 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 Python
Python 中random 库的详细使用
Jun 03 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和ACCESS写聊天室(九)
2006/10/09 PHP
isset和empty的区别
2007/01/15 PHP
PHP 各种排序算法实现代码
2009/08/20 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
微信小程序 刷新上拉下拉不会断详细介绍
2017/05/11 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
python实现数组插入新元素的方法
2015/05/22 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
python根据url地址下载小文件的实例
2018/12/18 Python
python实现一个点绕另一个点旋转后的坐标
2019/12/04 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
新加坡交友网站:be2新加坡
2019/04/10 全球购物
教堂婚礼主持词
2014/03/14 职场文书
服务口号大全
2014/06/11 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers