python mysql | mongo | redis 的操作

本文详细介绍了如何使用Python操作三种主流数据库:MySQL、Redis和MongoDB。包括数据库连接、数据增删改查、设置数据过期时间等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、操作mysql

import pymysql
def my_db(ip,user,passwd,db,sql,port=3306,charset='utf8'):
   coon = pymysql.connect(host=ip,user=user,
               password=passwd,db=db,
               port=port,charset=charset,autocommit=True)
   cur = coon.cursor()   #建立游标
   sql=sql.strip()
   cur.execute(sql)   #执行sql语句,但不会返回执行的结果
   sql_start = sql[:6].lower()#取sql的开头,转成小写
   if sql_start.startswith('select') or sql_start.startswith('show'):
      data = cur.fetchall()  #获取到查询的所有结果
   else:
      data = 'ok'
   cur.close()  #关闭游标
   coon.close()  #关闭连接
   return data

二、操作redis

import redis
r = redis.Redis(host='x.x.x.x',port=6379,password='xxx',db=10)
#1.操作string类型
r.set('a','age18') #增加、修改数据
res = r.get('111')  #获取数据
r.delete('nhy_info') #指定一个key删除
res.decode() #编码,就变成了字符串
r.keys('*info') #获取到所有的key
r.exists('dashu_name')) #判断这个key是否存在
r.flushdb()#可以清空当前数据库里面所有的key
r.expire('session_crm',600)#指定key的失效时间,秒为单位
r.ttl('session_crm'))#用来看这个key的失效时间
def op_redis_str(k,t=None,v=None):
    r = redis.Redis(**REDIS_INFO)
    if v and t==None:
        r.set(k,v)
    elif v and t:
        r.set(k,v)
        r.expire(k,t)
    elif v==None:
        res=r.get(k)
        if res==None:
            return None
        else:
            return res.decode()
#2.操作hash类型
r.hset('session_crm','liuxinyu','sdfjksdklfjssdf') #增加、修改(大k,小k,值)
r.hdel('session_crm','liuxinyu') #删除指定的小key
r.delete('session_crm') #直接删除大key
r.hget('session_crm','zhouyifan_') #获取指定小key里面的数据
res = r.hgetall('session_crm')#获取到hash类型里面所有的数据
def op_hash(k1, k2=None, v=None):
     if v and k2:
         r.hset(k1,k2,v)
     elif v==None and k2==None:
         res2=r.hgetall(k1)
         for k, v in res2.items():
            res2[k.decode()]=res2.pop(k).decode()
         return res2
     elif v==None and k2:
         res3=r.hget(k1,k2)
         return res3.decode()

三、操作mongodb

import pymongo
client = pymongo.MongoClient(host='x.x.x.x',port=27017)
db = client['szp']  #选择数据库,如果这个数据库不存的话,会帮你创建
collection = db['stu_info'] #选择一个集合,就相当于mysql里面表
db['stu_info'].insert({'url':'http://www.baidu.com','title':'baidu.com','addr':'西二旗'})
for d in db['stu_info'].find({'title':'baidu.com'}):
     print(d)
collection.delete_one({'title':'baidu.com'})  #如果有多条的话,只会帮你删掉1条
collection.delete_many({'title':'baidu.com'})#会删除多条
print(list(collection.find()))
collection.update({'jd':'www.jd.com'},{'jd':'www.jd.com','addr':'亦庄'})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值