利用 Python 去操作数据库(MongoDB,MySQL,Redis)

一.操作 MongoDB

封装一个操作 MongoDB 的类,可进行增删改查,通过实例化对象同时指定具体集合。

1.初始化

import pymongo

class MyMongoDB:
    def __init__(self,database,collection):
        """
        初始化方法,MongoDB的连接配置
        :param database: 指定要连接的数据库
        :param collection: 指定要连接的集合
        """
        self.client = pymongo.MongoClient()
        self.db = self.client[database]
        self.col = self.db[collection]

2.增加(insert)

    def insert(self,date,onlyOne = True):
        """
        插入数据
        :param date: 插入数据
        :param onlyOne: 是否只插入一条,默认为True,只插入一条
        :return:None
        """
        if not isinstance(onlyOne,bool):
            raise TypeError
        # if onlyOne:
        #     self.col.insert_one(date)
        # else:
        #     self.col.insertany_m(date)

        self.col.insert_one(date) if onlyOne else self.col.insertany_m(date)

3.更改(update)

    def update(self,date,new_date,onlyOne = True):
        """
        修改数据
        :param date: 原来的数据
        :param new_date: 新数据
        :param onllyOne: 是否只修改一条
        :return: None
        """
        self.isType(onlyOne,bool)
        self.col.update_one(date,{'$set':new_date}) if onlyOne else self.col.update_one(date,{'$set':new_date})

4.查询(find)

    def find(self,query=None,onlyOne=True):
        """
        查询数据
        :param query:查询条件,默认为None,查询所有
        :param onlyOne: 是否只查询一条
        :return: None
        """
        self.isType(onlyOne,bool)
        res = self.col.find_one(query) if onlyOne else list(self.col.find(query))

5.删除(delect)

    def delect(self,date,onlyOne=True):
        """
        删除数据
        :param date:要删除的数据
        :param onlyone:是否只删除一条
        :return:None
        """
        self.isType(onlyOne, bool)
        self.col.delect_one(date) if onlyOne else self.col.delect_many(date)

6.一般我们会使用(if __name__ == '__main__':)对封装的 MongoDB 进行运行,这样就不会运行时出现文件名。

if __name__ == '__main__':
    student = MyMongoDB('yige','student')
    # 增加
    # student.insert({'name':'yige','age':18})
    # student.insert([{'name': 'liangge', 'age': 28},{'name': 'sange', 'age': 18}], onlyOne=False)
    # 修改
    # student.update({'name':'sange'},{'age':38})
    # student.update({'age':18}, {'age': 26})
    # 查询
    # student_list = student.find(onlyOne=False)
    # student_list = student.find({'age':28})
    # student_list = student.find({'age': 28},onlyOne=False)
    # print(student_list)

二.操作MySQL

1.安装

pymysql:pip install PyMYSQL -i http://pypi.douban.com/simple

2.导包

 import pymysql

3.连接

mysql:IP,port,user,password,db,charset
拆包 {'host':'127.0.0.1'} **变量名 host='127.0.0.1'
            db_config = {
             'host':'127.0.0.1',
             'port':3306,
             'user':'admin',
             'password':'qwe123',
             'db':'yige',
             'charset':'utf-8'
            }
            conn = pymysql.connect(**db_config)

4.获取游标对象,执行sql语句(sql语句依赖游标对象去执行的)

cur = conn.cursor()

5.编写 sql 语句

sql = 'INSERT INTO `student` (`name`,`class_id`) VALUES ("shige",2);'

6.执行sql语句

try:
    sql = 'INSERT INTO `student` (`name`,`class_id`) VALUES ("shige",2);'
    cur.execute(sql)
except Exception as e:
    conn.rollback()  #如果执行sql语句出现了异常,则进行事务回滚
    print(f'异常{e},已取消操作')
else:
    conn.commit()   #确认没有问题,则进行事务提交
    print('执行成功')
finally:
    # 无论是否成功执行完成之后都进行资源的释放
    cur.close()  #关闭游标对象
    conn.close()  #关闭连接对象

7.实际操作

import pymysql

db_config = {
    'host':'127.0.0.1',
    'port':3306,
    'user':'admin',
    'password':'qwe123',
    'db':'coco',
    'charset':'utf8'
}
conn = pymysql.connect(**db_config)
cur = conn.cursor()

try:
    sql = 'INSERT INTO `student` (`name`,`class_id`) VALUES ("shige",2);'
    cur.execute(sql)
except Exception as e:
    conn.rollback()  #如果执行sql语句出现了异常,则进行事务回滚
    print(f'异常{e},已取消操作')
else:
    conn.commit()   #确认没有问题,则进行事务提交
    print('执行成功')
finally:
    # 无论是否成功执行完成之后都进行资源的释放
    cur.close()  #关闭游标对象
    conn.close()  #关闭连接对象

三.操作 redis

每个指令都有自己的方法,redis,MongoDB都是Nosql都是通过方法的调用去实现增删改查的功能,mysql,时sql数据库通过sql语句来操作的,用游标对象执行

1.安装模块

redistribution:pip install redis -i http://pypi.douban.com/simple

2.导包

 import redis

3.连接 redis:IP,port

redis_config = {
    'host': '127.0.0.1',
    'port': 6379,
    'db': 0,
    'decode_responses':True
}
db = redis.StrictRedis(**redis_config)

4.进行增删改查(具体操作可观看 redis)

db = redis.StrictRedis(**redis_config)
db.set('num','1234')
db.lpush('li1','5')
print(db.lrange('li1',0,-1))
db.set('test','qwel',ex=60)
print(db.keys())

附(全部内容,有兴趣的可以自己试试看):
mongodb:
在这里插入图片描述
mysql:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
redis:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风和云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值