以下代码在 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
正文完