一.操作 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: