Python pymysql 模块
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 模块的更多相关文章
- mysql python pymysql模块 基本使用
我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢? 这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pi ...
- python:pymysql模块使用
一,基本使用 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,p ...
- python - pymysql模块
pymsql 模块 基本应用介绍: # 安装模块 pip install PyMySql # 导入模块 import pymysql # 配置连接信息 config = { 'host':'127.0 ...
- Python pymysql模块学习心得
PyMySQL包含了一个纯Python的MySQL客户端的库,它的目的是用来替换MySQLdb,并且工作在CPython,PyPy和IronPython. PyMySQL官方地址:https://py ...
- mysql python pymysql模块 增删改查 插入数据 介绍 commit() execute() executemany() 函数
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 fetchone
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 字典游标显示
我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可 ...
- mysql python pymysql模块 增删改查 查询 fetchmany fetchall函数
查询的fetchmany fetchall函数 import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' ...
- mysql python pymysql模块 获取插入的最后一条数据的自增ID lastrowid()方法
调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-- ...
随机推荐
- 一款基于css3的动画按钮
之前为大家分享了 推荐10款纯css3实现的实用按钮.今天给大家带来一款基于css3的动画按钮.实现的效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=& ...
- cmder小技巧
1.修改config下的aliases文件,可以添加别名 $* 表示所有参数,$i 表示第几个参数 比如cd cd=cd /d $* 这样window下的cd就可以直接切换盘符+路径了. 有用的别名 ...
- wampserver 手动启用停用命令
1.定位到安装目录 在cmd中定位到wampserver的安装目录,如:D:\wamp\bin\apache\Apache2.4.4\bin 2.执行命令 启动apache命令httpd -k sta ...
- 【Visual Studio】VS常用调试技巧——笔记
CSDN的文档: https://msdn.microsoft.com/en-us/library/aa295838(v=vs.60).aspx 情景一:[监视]变量时,当运行离开当前函数后,怎么看到 ...
- 我的开源主页Blog Lite配置指南
JinHengyu.github.io --- Blog Lite 0.1.1 好看的东西看多了就会不好看, 简单的东西永远不会难看 GitHub Pages 提供静态网站托管服务的厂商还是很多的, ...
- java判断邮件是否发送成功
http://www.cnblogs.com/winner-0715/p/5136392.html
- subversion commit 报错A checksum mismatch occurred
期望: 2bea3643d1ea67bfa032af9dd649b1d5 实际: 5693bd753ac9ab1ddfcdd9a644b6bd02 在eclipse工程中出现此问题,则 1.com ...
- 手动模拟输出json
每次去写太麻烦,写一个样本,下次对照就好了 context.Response.Write("{\"UserName\":\""+HttpContext ...
- 《FPGA全程进阶---实战演练》第四章之Quartus II使用技巧
技巧1:“新”技能 hierarchies警告寻找 在编译之后,警告中“hierarchies”这个单词大家估计都很熟悉了,一看到这个警告,基本上就是例化时出现的问题.一般例化时,要是哪个连线没引出, ...
- thinkphp 第一个设计总结
1.thinkphp的无限级分类不是万能的... 2.感觉先看前台(根据前台设计数据库)后写控制代码(后台),速度或许会快一点,思路明确...