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; +----+-- ...
随机推荐
- js图片转base64并压缩
/* 2015-09-28 上传图片*/ function convertImgToBase64(url, callback, outputFormat){ var canvas = document ...
- QDialog:输入对话框、颜色对话框、字体对话框、文件对话框
# _*_ coding:utf-8 _*_ import sys from PyQt4 import QtCore,QtGui class Example(QtGui.QWidget): def _ ...
- JAVA面试题集---数据库方面_
1.存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表. ...
- SQL Server 2008下日志清理方法 2
SQL Server 2008下日志清理方法 (2011-07-14 10:30:45) 转自 http://blog.sina.com.cn/s/blog_4bdd3d0b0100wfvq.html ...
- 測试Service
<strong><span style="font-size:18px;">自己定义Service:</span></strong> ...
- Beego 框架学习(一)
1.特性 beego是一个http框架 高性能,是目前最快的的go框架 开发快捷,组件多,高度解耦 RESTful方式,可以自定义action 文档完整 智能路由.智能监控 2.安装 go get g ...
- 01 Developing Successful Oracle Application
本章提要-------------------------------本章是概述性章节1. 介绍了了解数据库内部结构对于开发的重要性2. 介绍了如何才能开发好的数据库应用程序------------- ...
- 'cl.exe' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
1.首先找到vcvars32.bat文件,一般在C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\bin文件夹下 2.打开cmd黑窗 ...
- Android startActivityForResult 回传数据
一个activity打开新的activity,新的activity关闭之后,返回数据.原来的activity要接收返回的数据,在开启新的activity时,就需要调用startActivityForR ...
- 标准的 C++ 由三个重要部分组成
标准的 C++ 由三个重要部分组成: 核心语言,提供了所有构件块,包括变量.数据类型和常量,等等.C++ 标准库,提供了大量的函数,用于操作文件.字符串等.标准模板库(STL),提供了大量的方法,用于 ...