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; +----+-- ...
随机推荐
- discuz论坛折腾记录
1.邮箱验证 自带的是用php sendmail,好在可以用smtp 如果用企业邮箱,一般都是ssl,需要设置为,参考此帖 STMP服务器 - QQ 企业邮ssl://smtp.exmail.qq.c ...
- 胖ap和瘦ap区别
胖AP(FAT AP)模式:适合小面积无线覆盖,AP单独使用,无需TP-LINK无线控制器(AC)即可独立工作,无线组网成本低: 瘦AP(FIT AP)模式:适合大面积无线覆盖,通过TP-LINK无线 ...
- 360浏览器兼容模式 不能$.post (不是a 连接 onclick的问题!!)
最近发现一个360浏览器很蛋疼的事情,在兼容模式下 代码: <a href="#" onclick='doAudit(1)'>审核</a> 点击没有任何效果 ...
- Hibernate的getTransaction()和beginTransaction()
session.getTransaction()只是根据session获得一个Transaction实例,但是并没有启动它 session.beginTransaction()在获得一个Transac ...
- 利用base64展示图片
其实很简单,格式如下: <img src="data:image/jpg;base64,具体的编码值" /> 支持的类型有: data:,文本数据 data:text/ ...
- C++ 类的头文件、实现、使用
再次吐槽下C++Primer这本书,啰哩啰嗦,废话太多.如果我来翻译的话,绝对删减一堆没用的---仅限于发牢骚. 不知道是否经典的做法 类中的成员声明在头文件中,定义(我更喜欢叫实现)在源文件中,使用 ...
- 基于Linux的智能家居的设计(4)
3 开发环境的搭建 本次课题使用的开发环境比較特殊.没有一个现成的集成开发环境,需要自己一步一步的搭建开发环境,开发环境的搭建的过程十分复杂,并且假设没有这个开发环境本次课题就无法进行. 因此.在进 ...
- TinyOS节点间通信相关接口和组件介绍
一.基本通信接口: Packet:提供了对message_t抽象数据类型的基本访问.这个接口的命令有:清空消息内容,获得消息的有效载荷区长度,获得消息有效载荷区的指针. //tos/interfa ...
- ubuntu安裝 R RStudio
sudo apt--i386.deb ref: http://blog.csdn.net/lichangzai/article/details/39376117
- 监视在input框中按下回车(enter) js实现
function getKey(event) { if (event.keyCode == 13) { alert("我是回车键"); } } <input type=&qu ...