PyMySQL 使用笔记,这个感觉写的挺全面,免得以后自己再找

编程入门 行业动态 更新时间:2024-10-26 16:21:43

PyMySQL 使用笔记,这个感觉写的挺全面,免得以后自己<a href=https://www.elefans.com/category/jswz/34/1302685.html style=再找"/>

PyMySQL 使用笔记,这个感觉写的挺全面,免得以后自己再找

这个感觉写的挺全面,免得以后自己再找

原文地址:

connections 模块

类:Connection

  • 用法:执行 pymysql.connect() 得到。而不是构造函数 Connection()
  • pymysql.connect() 的参数即为 Connection() 构造函数的参数。
  • 构造函数:
pymysql.connections.Connection(self,host=None,          # 要连接的主机地址user=None,          # 用于登录的数据库用户password='',        # 密码database=None,      # 要连接的数据库port=0,             # 端口,一般为 3306unix_socket=None,   # 选择是否要用unix_socket而不是TCP/IPcharset='',         # 字符编码sql_mode=None,      # Default SQL_MODE to use.read_default_file=None, # 从默认配置文件(my.ini或myf)中读取参数conv=None,          # 转换字典use_unicode=None,   # 是否使用 unicode 编码client_flag=0,      # Custom flags to send to MySQL. Find potential values in constants.CLIENT.cursorclass=<class 'pymysql.cursors.Cursor'>, # 选择 Cursor 类型init_command=None,  # 连接建立时运行的初始语句 connect_timeout=10, # 连接超时时间,(default: 10, min: 1, max: 31536000)ssl=None,           # A dict of arguments similar to mysql_ssl_set()'s parameters.For now the capath and cipher arguments are not supported. read_default_group=None, # Group to read from in the configuration filepress=None,      # 不支持named_pipe=None,    # 不支持no_delay=None,      # autocommit=False,   # 是否自动提交事务db=None,            # 同 database,为了兼容 MySQLdbpasswd=None,        # 同 password,为了兼容 MySQLdblocal_infile=False, # 是否允许载入本地文件max_allowed_packet=16777216, # 限制 `LOCAL DATA INFILE` 大小defer_connect=False, # Don't explicitly connect on contruction - wait for connect call.auth_plugin_map={}, #read_timeout=None,  # write_timeout=None, bind_address=None   # 当客户有多个网络接口,指定一个连接到主机)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 重要函数
函数说明
cursor(cursor = None)创建一个游标
commit()事务提交,如果没有设为自动提交,则每次操作后必须提交事务,否则操作无效。
rollback()操作出错时,可以用这个函数回滚到执行事务之前
close()关闭连接

- 一个例子

import pymysql.cursorsconfig = {'host':'127.0.0.1','port':3306,'user':'root','password':'xinxin2333','database':'trade_ms','charset':'utf8mb4','cursorclass':pymysql.cursors.Cursor,}# 连接数据库
connection = pymysql.connect(**config)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

cursors 模块

类 : Cursor

  • 使用 connections.Connection.cursor() 得到,而不是这个类的构造函数
  • connections.Connection.cursor()的参数是 cursor 的类型。
  • 重要函数
函数说明
callproc(procname, args=())执行一个过程
execute(query,args=None)执行一条SQL语句,返回受影响的行数。若args是列表,用%s做占位符,若是字典,用%(name)s
executemany(query,args)对一个操作运行多个数据,如一次插入多条数据
fetchall()取出操作返回的所有的行
fetchone()取出一行
fetchmany(size=None)取出 size 行
close()关闭这个游标对象

- 游标类型

类名说明
Cursor默认类型,查询返回list
DictCursor与Cursor不同的地方是,查询返回dict,包括属性名
SSCursor查询不会返回所有的行,而是按需求返回
SSDictCursor差别同前两个
  • 举例说明
#Cursor 查询返回
(10000, 't恤男短袖', 28, Decimal('89.00'), 300) 
#DictCursor 查询返回
{'cid': 10000, 'cname': 't恤男短袖', 'claid': 28, 'price': Decimal('89.00'), 'cnum': 300}
  • 1
  • 2
  • 3
  • 4
  • 一个例子
#!python3
#-*- coding: utf-8 -*-import pymysql.cursors      # 好像import这个模块就可以了config = {'host':'127.0.0.1','port':3306,'user':'root','password':'xinxin2333','database':'trade_ms','charset':'utf8mb4','cursorclass':pymysql.cursors.Cursor,}connection = pymysql.connect(**config)  # 连接数据库try:with connection.cursor() as cursor:sql = 'SELECT * FROM commodity WHERE price > 100 ORDER BY price'count = cursor.execute(sql) # 影响的行数print(count)result = cursor.fetchall()  # 取出所有行for i in result:            # 打印结果print(i)connectionmit()         # 提交事务
except:connection.rollback()           # 若出错了,则回滚finally:connection.close()


更多推荐

PyMySQL 使用笔记,这个感觉写的挺全面,免得以后自己再找

本文发布于:2024-02-07 06:02:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754019.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:再找   感觉   笔记   PyMySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!