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中 传递值 和 传递引用 的区别解析
Feb 22 Python
Python发展简史 Python来历
May 14 Python
使用python画社交网络图实例代码
Jul 10 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 Python
Python编程快速上手——选择性拷贝操作案例分析
Feb 28 Python
python中for in的用法详解
Apr 17 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
python实现过滤敏感词
May 08 Python
pytorch Dropout过拟合的操作
May 27 Python
Python使用PyYAML库读写yaml文件的方法
Apr 06 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的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
微信小程序调用微信支付接口的实现方法
2019/04/29 Javascript
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
用Python遍历C盘dll文件的方法
2015/05/06 Python
python采集百度百科的方法
2015/06/05 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python单元测试实例详解
2018/05/25 Python
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
为什么要做架构设计
2015/07/08 面试题
物业公司采购员岗位职责
2013/12/31 职场文书
青安岗事迹材料
2014/05/14 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
python基础之停用词过滤详解
2021/04/21 Python
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript