pymysql 是 Python3 连接 MySQL 的一个模块,常见用法如下:

[root@localhost ~]$ pip3 install pymysql    # 安装 pymysql 模块
In [1]: import pymysql

In [2]: conn = pymysql.connect(host='127.0.0.1', user='root', passwd='')    # connect()用于连接MySQL数据库,结果返回一个连接对象
# 常用的连接参数有:host 、user 、passwd 、db 、port
In [3]: cur = conn.cursor() # 创建游标,用来存放执行SQL语句所检索出来的结果集 In [4]: cur.execute('show databases') # 使用游标来执行SQL语句,8L表示结果有8行,结果会存存储在游标中
Out[4]: 8L In [5]: cur.fetchone()
Out[5]: ('information_schema',) # fetchone()用于查看一条结果 In [6]: cur.fetchmany(3)
Out[6]: (('mysql',), ('performance_schema',), ('test',)) # fetchmany()用于查看多条结果 In [7]: cur.fetchall()
Out[7]: (('test1',), ('test2',), ('test3',), ('wordpress',)) # fetchall()用于查看所有结果

In [8]: cur.close() # 关闭游标
In [9]: conn.close() # 关闭数据库连接

在 Python 中的写法:

#!/usr/bin/env python3
#-*- coding: utf-8 -*- import pymysql def connectMySQL():
db_config = {
'host': '127.0.0.1',
'port': 3306,
'user': 'root',
'passwd': '',
'db': 'mysql',
'charset': 'utf8',
} conn = pymysql.connect(**db_config)
return conn if __name__ == '__main__':
conn = connectMySQL()
cur = conn.cursor()
try:
cur.execute('show tables;')
result = cur.fetchall()
print(result)
cur.close()
conn.commit() <--- 这里使用MySQL事务,如果执行SQL语句成功则提交,如果执行失败则回滚
except:
conn.rollback()
print("执行SQL语句失败!")
finally:
conn.close()

使用 MySQL 连接池:

我们对数据库进行查询/插入/更新等操作,需要先连接数据库,创建数据库连接是一个很耗时的操作,为了避免多次连接 MySQL 数据库,我们可以使用 MySQL 连接池;
MySQL 连接池(Connection Pooling)是 MySQL 程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由 MySQL 程序动态地对池中的连接进行申请,使用,释放。

[root@localhost ~]$ pip3 install DBUtils    # 安装DBUtils
#!/usr/bin/env python3
#-*- coding: utf-8 -*- import pymysql
from DBUtils.PooledDB import PooledDB def connectMySQL():
db_config = {
'host': '127.0.0.1',
'port': 3306,
'user': 'game',
'passwd': 'cqbygame',
'db': 'mysql',
'charset': 'utf8',
} pool = PooledDB(pymysql, 5, **db_config) # 创建连接池,指定创建5个数据库连接
conn = pool.connection() # 以后每次需要连接数据库就用connect()函数获取连接
return conn if __name__ == '__main__':
conn = connectMySQL()
cur = conn.cursor()
try:
cur.execute('show tables;')
result = cur.fetchall()
print(result)
cur.close()
conn.commit()
except:
conn.rollback()
print("执行SQL语句失败!")
finally:
conn.close()

Python pymysql 模块的更多相关文章

  1. mysql python pymysql模块 基本使用

    我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢? 这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pi ...

  2. python:pymysql模块使用

    一,基本使用 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,p ...

  3. python - pymysql模块

    pymsql 模块 基本应用介绍: # 安装模块 pip install PyMySql # 导入模块 import pymysql # 配置连接信息 config = { 'host':'127.0 ...

  4. Python pymysql模块学习心得

    PyMySQL包含了一个纯Python的MySQL客户端的库,它的目的是用来替换MySQLdb,并且工作在CPython,PyPy和IronPython. PyMySQL官方地址:https://py ...

  5. mysql python pymysql模块 增删改查 插入数据 介绍 commit() execute() executemany() 函数

    import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...

  6. mysql python pymysql模块 增删改查 查询 fetchone

    import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...

  7. mysql python pymysql模块 增删改查 查询 字典游标显示

    我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可 ...

  8. mysql python pymysql模块 增删改查 查询 fetchmany fetchall函数

    查询的fetchmany fetchall函数 import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' ...

  9. mysql python pymysql模块 获取插入的最后一条数据的自增ID lastrowid()方法

    调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-- ...

随机推荐

  1. C#中关于用户名和密码的验证问题。

    本次练习的目的是使用LinQ to XML,正则表达式,明天在这个基础上练习使用序列化和反序列化,继续加点儿小功能. 首先,这是一个窗体程序,设计如下: 存放用户名和密码的XML如下: 实现的代码如下 ...

  2. MongoDB学习之(一)安装

    第一步:下载MongoDB的安装版进行安装 https://pan.baidu.com/s/1X3hIqORJ61TCG1UJ_yr6ag 由于第二次安装出现一些问题,所有还是记录一下,免得以后踩坑. ...

  3. [shell]判断网络情况并加上时间戳

    最近需要做一个实时统计网络情况并统计误包率的脚本,下面是StackExchange上的一个剽窃,虽然不完全满足,但只可以输出一些信息 #!/bin/bash host=$ if [ -z $host ...

  4. Tomcat 添加为系统服务 开机自动启动

    http://jingyan.baidu.com/article/a65957f4b12b8724e77f9b5a.html Tomcat是Apache 软件基金会(Apache Software F ...

  5. java TreeMap 源代码分析 平衡二叉树

    TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 Tre ...

  6. java-数据库连接工具类 DataSourceUtil.java

    DataSourceUtil.java package com.gordon.utils; import java.sql.Connection; import java.sql.ResultSet; ...

  7. [从jQuery看JavaScript]-JavaScript

    什么是JavaScript?相信随便百度Google一下都能找到一大堆的定义解释.而在我的理解中,JavaScript就是一种客户端的脚本语言,用于处理页面数据逻辑和用户体验(网页特效).实际上,Ja ...

  8. 【转】MFC 对话框Border属性设置(None、Thin、Resizing、Dialog Frame)

    对话框的Border属性对应的值设置 Dialog Frame WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME ...

  9. GIt的基本知识

    以前已经把git 看过一遍了,由于好久没有用它 ,现在已经忘了.现在呢,要用它进行同步代码,所以呢,我打算记一记,再复习复习. 参考文件:https://git-scm.com/book/zh/v2 ...

  10. 10 个很有用的高级 Git 命令(转)

    英文原文:10 Useful Advanced Git Commands 迄今,我已经使用Git很长一段时间了,考虑分享一些不管你是团队开发还是个人项目,都受用的高级git命令. 1. 输出最后一次提 ...