Python3 Mongodb数据库连接单例写法

以下代码在 Python3.6 版本可用。

import pymongo
import sys
import traceback
"""
mongodb 数据库连接(单例模式)调用方法:sys.path.append('..')   如果有必要,加在最上面
from momngodb_conn import mongo_client
"""


class Singleton(object):
    # 实现__new__方法
    # 并在将一个类的实例绑定到类变量_instance 上,
    # 如果 cls._instance 为 None 说明该类还没有实例化过, 实例化该类, 并返回
    # 如果 cls._instance 不为 None, 直接返回 cls._instance
    def __new__(cls, *args, **kwargs):
        if not hasattr(cls, '_instance'):
            orig = super(Singleton, cls)
            cls._instance = orig.__new__(cls, *args, **kwargs)
        return cls._instance


class MongoConn(Singleton):
    def __init__(self):
        try:
            self.mongo_client = pymongo.MongoClient("mongodb://username:password@localhost:27017/")
        except Exception:
            print(traceback.format_exc())
            print('mongodb 连接失败!.')
            sys.exit(1)

    def __del__(self):
        if self.conn:
            self.conn.close()
        print("mongodb 连接不再使用")


 mongo_client =  MongoConn().mongo_client
正文完
 0
评论(没有评论)