栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

unittest之mysql、mongodb常用方法封装

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

unittest之mysql、mongodb常用方法封装

1.关于pymysql常用方法的封装,如下所示:

import pymysql
from common.read_config import ReadConfig

class HandleMysql:
    def __init__(self):
        self.RC=ReadConfig("../configs/pam_urls.ini")
        #打开数据库连接
        self.connector=pymysql.connect(
            host=self.RC.get_str("MYSQL","host"),
            port=self.RC.get_int("MYSQL","port"),
            user=self.RC.get_str("MYSQL","user"),
            password=self.RC.get_str("MYSQL","password"),
            database=self.RC.get_str("MYSQL","database"),      #要连接的数据库
            charset=self.RC.get_str("MYSQL","charset")         #设置数据库编码
        )
        self.cur=self.connector.cursor()      #创建一个游标对象
        self.cursor=self.connector.cursor(pymysql.cursors.DictCursor)    #设置为字典形式返回数据,默认为元组
    def create_table(self,sql):
        self.cursor.execute(sql)      #使用execute()方法执行sql语句
        self.close()
    def insert_table(self,sql):
        try:
            self.cur.execute(sql)
            self.connector.commit()      #提交游标的所有更新操作
        except:
            print("插入数据失败!")
            self.connector.rollback()     #回滚当前游标的所有操作
        self.close()
    def query_table(self,sql):
        self.cur.execute(sql)
        data1=self.cur.fetchall()
        print("返回元组:{0}".format(data1))
        self.cursor.execute(sql)
        data2 = self.cursor.fetchall()
        print("返回字典:{0}".format(data2))
        self.close()
    def update_table(self,sql):
        try:
            self.cur.execute(sql)
            self.connector.commit()      #提交游标的所有更新操作
        except:
            print("更新数据失败!")
            self.connector.rollback()     #回滚当前游标的所有操作
        self.close()
    def delete_table(self,sql):
        try:
            self.cur.execute(sql)
            self.connector.commit()      #提交游标的所有更新操作
        except:
            print("删除数据失败!")
            self.connector.rollback()     #回滚当前游标的所有操作
        self.close()
    def close(self):
        self.cursor.close()       #关闭游标对象
        self.connector.close()      #关闭数据库连接

2.关于pymongodb常用方法的封装,如下所示:

from pymongo import MongoClient
from common.read_config import ReadConfig

class HandleMongo:
    def __init__(self):
        self.RC=ReadConfig("..configs/pam_urls.ini")
        self.host=self.RC.get_str("MONGO","host")
        self.port = self.RC.get_int("MONGO", "port")
        self.db = self.RC.get_str("MONGO", "db")
        self.client=MongoClient(host=self.host,port=self.port)
        self.usedb=self.client[self.db]

    def db_co_info(self):
        dbs=self.client.list_database_names()
        print("共有数据库{0}个,分别是:{1}".format(len(dbs),dbs))
        cos=self.usedb.list_collection_names()
        print("数据库{0}下共有集合:{1}个,分别是:{2}".format(self.db,len(cos),cos))

    def insert_collection(self,collection,documents):
        self.usedb[collection].insert_many(documents)

    def query_collection(self,collection,param=None):
        dos=list(self.usedb[collection].find(param))      #param需要以字典的形式入参
        print("该集合{0}下,共有文档{1}个".format(collection,len(dos)))

    def delete_collection(self,collection,param=None):
        self.usedb[collection].delete_many(param)         #不传param时,默认该集合下的文档全部删除

if __name__=="__main__":
    document01 = ({'title': 'mongo', 'click': 85, 'url':'http://www.mongo.com', 'tags':'nosql'})
    document02 = ({'title': 'mysql', 'click': 90, 'url': 'http://www.mysql.com', 'tags': 'sql'})
    document03 = ({'title': 'redis', 'click': 105, 'url': 'http://www.redis.com', 'tags': 'nosql'})
    document04 = ({'title': 'oracle', 'click': 70, 'url': 'http://www.oracle.com', 'tags': 'sql'})
    document05 = ({'title': 'sqlserver', 'click': 60, 'url': 'http://www.server.com', 'tags': 'sql'})
    list1=[document01,document01,document01,document01,document01]

    # HandleMongo().insert_collection('t_runoob01',list1)
    # HandleMongo().query_collection('t_runoob01')
    # HandleMongo().query_collection('t_runoob01',{'title':'mongo'})              #单个条件查询
    # HandleMongo().query_collection('t_runoob01', {'title': 'mongo','':''})       # 多个条件查询
    # HandleMongo().delete_collection('t_runoob01',{})            #删除全部文档
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/972126.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号