Python3 Mongodb数据库连接单例写法
Python •
以下代码在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