安装pymysql

  1. pip install pymysql

使用pymysql

使用数据查询语句

  • 查询一条数据fetchone()
  1. from pymysql import *
  2. conn = connect(
  3. host='127.0.0.1',
  4. port=3306, user='root',
  5. password='123456',
  6. database='itcast',
  7. charset='utf8')
  8. # 创建游标
  9. c = conn.cursor()
  10. # 执行sql语句
  11. c.execute("select * from student")
  12. # 查询一行数据
  13. result = c.fetchone()
  14. print(result)
  15. # 关闭游标
  16. c.close()
  17. # 关闭数据库连接
  18. conn.close()
  19. """
  20. (1, '张三', 18, b'\x01')
  21. """
  • 查询多条数据fetchall()
  1. from pymysql import *
  2. conn = connect(
  3. host='127.0.0.1',
  4. port=3306, user='root',
  5. password='123456',
  6. database='itcast',
  7. charset='utf8')
  8. # 创建游标
  9. c = conn.cursor()
  10. # 执行sql语句
  11. c.execute("select * from student")
  12. # 查询多行数据
  13. result = c.fetchall()
  14. for item in result:
  15. print(item)
  16. # 关闭游标
  17. c.close()
  18. # 关闭数据库连接
  19. conn.close()
  20. """
  21. (1, '张三', 18, b'\x01')
  22. (2, '李四', 19, b'\x00')
  23. (3, '王五', 20, b'\x01')
  24. """
  • 更改游标的默认设置,返回值为字典
  1. from pymysql import *
  2. conn = connect(
  3. host='127.0.0.1',
  4. port=3306, user='root',
  5. password='123456',
  6. database='itcast',
  7. charset='utf8')
  8. # 创建游标,操作设置为字典类型
  9. c = conn.cursor(cursors.DictCursor)
  10. # 执行sql语句
  11. c.execute("select * from student")
  12. # 查询多行数据
  13. result = c.fetchall()
  14. for item in result:
  15. print(item)
  16. # 关闭游标
  17. c.close()
  18. # 关闭数据库连接
  19. conn.close()
  20. """
  21. {'id': 1, 'name': '张三', 'age': 18, 'sex': b'\x01'}
  22. {'id': 2, 'name': '李四', 'age': 19, 'sex': b'\x00'}
  23. {'id': 3, 'name': '王五', 'age': 20, 'sex': b'\x01'}
  24. """

返回一条数据时也是一样的。返回字典或者时元组看个人需要。

使用数据操作语句

执行增加、删除、更新语句的操作其实是一样的。只写一个作为示范。

  1. from pymysql import *
  2. conn = connect(
  3. host='127.0.0.1',
  4. port=3306, user='root',
  5. password='123456',
  6. database='itcast',
  7. charset='utf8')
  8. # 创建游标
  9. c = conn.cursor()
  10. # 执行sql语句
  11. c.execute("insert into student(name,age,sex) values (%s,%s,%s)",("小二",28,1))
  12. # 提交事务
  13. conn.commit()
  14. # 关闭游标
  15. c.close()
  16. # 关闭数据库连接
  17. conn.close()

和查询语句不同的是必须使用commit()提交事务,否则操作就是无效的。

编写数据库连接类

  • 普通版

MysqlHelper.py

  1. from pymysql import connect,cursors
  2. class MysqlHelper:
  3. def __init__(self,
  4. host="127.0.0.1",
  5. user="root",
  6. password="123456",
  7. database="itcast",
  8. charset='utf8',
  9. port=3306):
  10. self.host = host
  11. self.port = port
  12. self.user = user
  13. self.password = password
  14. self.database = database
  15. self.charset = charset
  16. self._conn = None
  17. self._cursor = None
  18. def _open(self):
  19. # print("连接已打开")
  20. self._conn = connect(host=self.host,
  21. port=self.port,
  22. user=self.user,
  23. password=self.password,
  24. database=self.database,
  25. charset=self.charset)
  26. self._cursor = self._conn.cursor(cursors.DictCursor)
  27. def _close(self):
  28. # print("连接已关闭")
  29. self._cursor.close()
  30. self._conn.close()
  31. def one(self, sql, params=None):
  32. result: tuple = None
  33. try:
  34. self._open()
  35. self._cursor.execute(sql, params)
  36. result = self._cursor.fetchone()
  37. except Exception as e:
  38. print(e)
  39. finally:
  40. self._close()
  41. return result
  42. def all(self, sql, params=None):
  43. result: tuple = None
  44. try:
  45. self._open()
  46. self._cursor.execute(sql, params)
  47. result = self._cursor.fetchall()
  48. except Exception as e:
  49. print(e)
  50. finally:
  51. self._close()
  52. return result
  53. def exe(self, sql, params=None):
  54. try:
  55. self._open()
  56. self._cursor.execute(sql, params)
  57. self._conn.commit()
  58. except Exception as e:
  59. print(e)
  60. finally:
  61. self._close()

该类封装了fetchone、fetchall、execute,省去了数据库连接的打开和关闭和游标的打开和关闭。

下面的代码是调用该类的小示例:

  1. from MysqlHelper import *
  2. mysqlhelper = MysqlHelper()
  3. ret = mysqlhelper.all("select * from student")
  4. for item in ret:
  5. print(item)
  6. """
  7. {'id': 1, 'name': '张三', 'age': 18, 'sex': b'\x01'}
  8. {'id': 2, 'name': '李四', 'age': 19, 'sex': b'\x00'}
  9. {'id': 3, 'name': '王五', 'age': 20, 'sex': b'\x01'}
  10. {'id': 5, 'name': '小二', 'age': 28, 'sex': b'\x01'}
  11. {'id': 6, 'name': '娃哈哈', 'age': 28, 'sex': b'\x01'}
  12. {'id': 7, 'name': '娃哈哈', 'age': 28, 'sex': b'\x01'}
  13. """
  • 上下文管理器版

mysql_with.py

  1. from pymysql import connect, cursors
  2. class DB:
  3. def __init__(self,
  4. host='localhost',
  5. port=3306,
  6. db='itcast',
  7. user='root',
  8. passwd='123456',
  9. charset='utf8'):
  10. # 建立连接
  11. self.conn = connect(
  12. host=host,
  13. port=port,
  14. db=db,
  15. user=user,
  16. passwd=passwd,
  17. charset=charset)
  18. # 创建游标,操作设置为字典类型
  19. self.cur = self.conn.cursor(cursor=cursors.DictCursor)
  20. def __enter__(self):
  21. # 返回游标
  22. return self.cur
  23. def __exit__(self, exc_type, exc_val, exc_tb):
  24. # 提交数据库并执行
  25. self.conn.commit()
  26. # 关闭游标
  27. self.cur.close()
  28. # 关闭数据库连接
  29. self.conn.close()

如何使用:

  1. from mysql_with import DB
  2. with DB() as db:
  3. db.execute("select * from student")
  4. ret = db.fetchone()
  5. print(ret)
  6. """
  7. {'id': 1, 'name': '张三', 'age': 18, 'sex': b'\x01'}
  8. """

使用python连接mysql数据库——pymysql模块的使用的更多相关文章

  1. Python连接MySQL数据库(pymysql的使用)

    本文Python版本3.5.3,mysq版本5.7.23 基本使用 # 导入pymysql模块 import pymysql #连接数据库 conn = pymysql.connect( databa ...

  2. python连接mysql之pymysql模块

    以下demo均以python2中的mysqldb模块 一.插入数据 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import MySQLdb    conn = MyS ...

  3. pymysql模块使用---Python连接MySQL数据库

    pymysql模块使用---Python连接MySQL数据库 浏览目录 pymysql介绍 连接数据库 execute( ) 之 sql 注入 增删改查操作 进阶用法 一.pymysql介绍 1.介绍 ...

  4. 第二百七十九节,MySQL数据库-pymysql模块操作数据库

    MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...

  5. Python连接MySQL数据库的多种方式

    上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器 ...

  6. python 连接Mysql数据库

    1.下载http://dev.mysql.com/downloads/connector/python/ 由于Python安装的是3.4,所以需要下载下面的mysql-connector-python ...

  7. Python连接MySQL数据库之pymysql模块使用

    安装PyMySQL pip install pymysql PyMySQL介绍 PyMySQL是在python3.x版本中用于连接MySQL服务器的一个库,2中则使用mysqldb. Django中也 ...

  8. Mysql(九):Python连接MySQL数据库之pymysql模块使用

    Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服 ...

  9. pymysql用法,Python连接MySQL数据库

    Pymysql模块是专门用来操作mysql数据库的模块,使用前需要安装,安装指令:pip install pymysql 操作流程: 第一步:import pymysql 第二步:获取数据库的连接 , ...

随机推荐

  1. deepin Linux 安装+工作学习配置

    一 安装 在官网下载 U盘安装,神舟优雅x4开机按F7,选择U盘启动. U盘安装器在下载的镜像文件中. 二 配置 升级最新系统 设置root用户密码: dawn@dawn-PC:~$ sudo pas ...

  2. 5.使用Ribbon实现客户端侧负载均衡

                                Ribbon实现客户端侧负载均衡 5.1. Ribbon简介 Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法 ...

  3. ansiblle---roles

    使用ansible中的roles来管理主机. 剧本中的roles你现在已经学过 tasks 和 handlers,那怎样组织 playbook 才是最好的方式呢?简单的回答就是:使用 roles ! ...

  4. Mysql Errors

    Mysql Errors Table of Contents 1. ERROR 1044 1.1. 42000 2. ERROR 1045 2.1. 28000 2.1.1. 无登录权限 2.1.2. ...

  5. [Ubuntu]18终止程序运行

    方法: 一.使用命令 killall  (使用方便,但要知道卡死应用程序的名称) 二.使用 gnome-system-monitor (不知道卡死应用程序的名称,也可以慢慢找出) 操作步骤: step ...

  6. 深度学习之DCGAN

    1.知识点 """ DCGAN:相比GAN而言,使用了卷积网络替代全连接 卷积:256*256*3 --- > 28*28*14 -->结果 ,即H,W变小, ...

  7. 在SuSE安装wifidog认证服务器和网关

    在SuSE安装认证服务器和网关 在openSuSE 10.3安装wifidog 认证服务器和网关在同台设备中安装完毕.以下是openSuSE的详细安装指南.这个安装是非常初级的,所以请验证或更正. - ...

  8. java设计模式中的动态代理

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  9. 分析Python中解析构建数据知识

    分析Python中解析构建数据知识 Python 可以通过各种库去解析我们常见的数据.其中 csv 文件以纯文本形式存储表格数据,以某字符作为分隔值,通常为逗号:xml 可拓展标记语言,很像超文本标记 ...

  10. V8的垃圾回收和内存限制

    V8的垃圾回收和内存限制 前言 在第三次浏览器大战中,来自Google的Chrome浏览器凭借优异的性能成为聚光灯下的焦点.而Chrome的成功离不开站在其背后的JavaScript引擎V8. 随着V ...