python笔记:mysql、redis操作方法
发布时间 - 2026-01-11 02:05:25 点击率:次模块安装:

数据操作用到的模块pymysql,需要通过pip install pymysql进行安装。
redis操作用的模块是redis,需要通过pip install redis进行安装。
检验是否安装成功:进入到Python命令行模式,输入import pymysql、 import redis ,无报错代表成功;
mysql操作方法如下:
查询数据:fetchone、fetchmany(n)、fetchall()
import pymysql
#建立mysql连接,ip、端口、用户名、密码(passwd,不能写成其他,例如:pwd或者p,否则报错)、库名
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#创建游标
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组
#执行sql,返回值是int,查询出来的结果有几条
cur.execute('select * from test')
#获取第一条数据,游标cur所在的位置为1,游标从0开始,查询结果类型为:字典
row_1 = cur.fetchone()
cur.scroll(0, mode='absolute') #将游标移动到初始位置
#获取前n行数据
row_2 = cur.fetchmany(n)
cur.scroll(0, mode='absolute') #将游标移动到初始位置
#获取所有数据,返回结果类型是:list,里面元素是字典
row_3 = cur.fetchall()
cur.scroll(0, mode='absolute') #将游标移动到初始位置
print(row_2)
#关闭游标
cur.close()
#关闭连接
conn.close()
增加、更新、删除数据
import pymysql #建立mysql连接 conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='szz', port=3306, charset='utf8') #创建游标 cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组 #执行sql sql = 'insert into test values(5, "断点", "e10adc3949ba59abbe56e057f20f883e")' sql_update = 'update test set name="薛之谦" where id=2 ' sql_del = 'delete from test where id = 3' cur.execute(sql_del) #insert、update、delete语句需要进行commit,否则无法保证修改或者新建的数据 conn.commit() #关闭游标 cur.close() #关闭连接 conn.close()
cursor的相对、绝对位置移动
import pymysql
#建立mysql连接
conn = pymysql.connect(host='192.168.3.66', user='root', passwd='123456', db='szz', port=3306, charset='utf8')
#创建游标
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #指定cursor的类型为字典,返回结果类型是字典,不再是元组
num = cur.execute('select * from testlhl')
print(num) #返回结果是int类型
row_1 = cur.fetchone() # 此时游标的位置在1,数据库取值从0下标开始,获取数据库第一条数据
cur.scroll(2, mode='absolute') #absolute绝对位置,直接是将游标从0位置移动到指定的位置2
row_2 = cur.fetchone() #读取数据库第3条数据,游标在3位置
cur.scroll(2, mode='relative') #relative相对位置,相对于游标当前所在位置,进行移动,移动1位,游标在4位置,若相对移动的位置超过下标,则报out of range
row_3 = cur.fetchone() #读取第5条数据
#关闭游标
cur.close()
#关闭连接
conn.close()
mysql的增删改查公共方法,代码如下:
def getconn(host, user, passwd, db, sql, port=3306,charset='utf8'):
conn = pymysql.connect(host=host, user=user, passwd=passwd, port=port, db=db, charset=charset) #建立连接
cur = conn.cursor(cursor=pymysql.cursors.DictCursor) #建立游标并指定游标类型
cur.execute(sql) #执行sql
if sql.startswith('select'): #判断sql是否是select
res = cur.fetchone()
else:
conn.commit() #insert\delete\update语句执行完毕后需要进行commit
res = 88
cur.close() #关闭游标
conn.close() #关闭连接
return res
redis操作方法如下:
key的类型是string,进行set操作,模式{key, value},如下:
import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#给redis添加值,传值方式是key-value,key不可重复,value的形式尽量是string,也可以传list、字典,redis内存放的是字节res = conn_redis.set('name', 'testredis')
#print(res) #返回值是布尔类型,set成功,则返回true
conn_redis.set('days', '[10,4,5,12,44]')
#set key值到redis内,且可以设置过期时间,10s
result = conn_redis.setex('session', 'abcder1233@sdfrr', 10) #单位是s
print(result) #返回值是布尔类型,set成功,则返回true
#批量插入redis,可以写入多个key-valye
conn_redis.mset(a='xiaohei', b='xiaobai', c='xiaohuang')
#设置key时,可以设置文件夹,user文件夹,key:test,value:haha
conn_redis.set('user:test','haha')
获取redis内的数据,通过key值进行获取
import redis
import json
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#获取redis的值,返回结果类型是bytes
res = conn_redis.get('abcd')
#使用decode()将bytes类型转换为字符串:输出>>>>>testredis
new_res = res.decode()
#使用json的loads,将json串(字符串)转换为字典
dic_res = json.loads(new_res)
#获取不存在的key,返回结果为None
res1 = conn_redis.get('asdfg')
print(res1.decode()) #输出>>>>>>'NoneType' object has no attribute 'decode'
#获取所有的keys,且循环遍历进行输入,使用decode()转换为字符串
list_keys = conn_redis.keys()
for key in list_keys:
print(key.decode())
#获取所有的key中以n开头的key,返回结果类型是list,元素类型是bytes 输出>>>>>[b'nbeee', b'name', b'nest']
print(conn_redis.keys('n*'))
删除redis内的值,通过key删除
import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#删除存在的key,删除key后,redis内不存在该key,返回结果为1,删除了一个key
res = conn_redis.delete('a')
#删除不存在的key,返回结果为0,没有删除key
res1 = conn_redis.delete('d')
#删除多个key,返回结果n, 删除了几个key就返回数字几
asdf = conn_redis.delete('a', 'b', 'c')
print(asdf)
key的类型是hash,进行set操作,模式:{key,{key1,value}}如下
import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash类型的key,模式{name,{key,value}},里面key不能重复,返回值为int
res = conn_redis.hset('user_session', 'lhl', 'sunny')
#hash类型的key,添加值时也可以设置文件夹
conn_redis.hset('session:redis_test', 'age', 18)
key的类型是hash,进行get操作,如下
import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#获取hash类型中的某个name下的某个key对应的value ,获取指定name里面的key的值,返回结果类似是bytes
res = conn_redis.hget('user_session', 'week')
#获取hash类型中name里面所有的key,返回结果是字典>>>>>输出:{b'test': b'sunny', b'week': b'sunny'}
all = conn_redis.hgetall('user_session')
key的类型是hash,进行delete操作,如下
import redis
db = 0
#连接redis,password不简写(否则或报错),db若不写,则默认操作db0
conn_redis = redis.Redis(host='192.168.3.66', port=6379, password='123456', db=db)
#hash类型的key,删除整个key, delete(name),返回结果为1
res = conn_redis.delete('user_session')
#hash类型的key,删除指定name里的key,若删除的key或者name不存在,则返回0
res = conn_redis.hdel('user_session', 'week')
redis的set、get公共操作方法如下
def opRedis(host, password, key, value=None, port=6379,db=0): #redis操作时需要传入key\value
conn_redis = redis.Redis(host=host, password=password, port=port, db=db) #获取redis连接
if value: #判断value是否传值,如果不为None,则是set
conn_redis.setex(key, value, 60) #设置key的过期时间,60s
res = 88
else:
res = conn_redis.get(key).decode() #将从redis内读取的值,由bytes转换为字符串
return res
以上这篇python笔记:mysql、redis操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# python
# redis
# mysql
# Python读写Redis数据库操作示例
# Python操作Redis之设置key的过期时间实例代码
# python操作redis的方法
# python操作redis方法总结
# Python操作redis实例小结【String、Hash、List、Set等】
# python实现redis三种cas事务操作
# 基于python实现操作redis及消息队列
# Python 抓取数据存储到Redis中的操作
# Python访问Redis的详细操作
# Python操作Redis数据库的超详细教程
# 报错
# 若不
# 不存在
# 转换为
# 操作方法
# 多个
# 返回值
# 给大家
# 布尔
# 的是
# 几个
# 结果是
# 则是
# 遍历
# 希望能
# 不为
# 这篇
# 相对于
# 几条
# 查询结果
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
米侠浏览器网页背景异常怎么办 米侠显示修复
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
大学网站设计制作软件有哪些,如何将网站制作成自己app?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
微信推文制作网站有哪些,怎么做微信推文,急?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Java遍历集合的三种方式
教学论文网站制作软件有哪些,写论文用什么软件
?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
大连 网站制作,大连天途有线官网?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
JS碰撞运动实现方法详解
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
如何续费美橙建站之星域名及服务?
HTML 中动态设置元素 name 属性的正确语法详解
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
如何用PHP工具快速搭建高效网站?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
英语简历制作免费网站推荐,如何将简历翻译成英文?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
网站建设保证美观性,需要考虑的几点问题!
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何快速搭建自助建站会员专属系统?
中国移动官方网站首页入口 中国移动官网网页登录
Laravel如何自定义错误页面(404, 500)?(代码示例)
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
如何自定义建站之星网站的导航菜单样式?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
如何快速配置高效服务器建站软件?
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
详解jQuery停止动画——stop()方法的使用
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
如何用美橙互联一键搭建多站合一网站?
Laravel如何保护应用免受CSRF攻击?(原理和示例)
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
Laravel如何集成Inertia.js与Vue/React?(安装配置)
如何在香港服务器上快速搭建免备案网站?

