Python OOP:如何与所有类共享MongoDB连接
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python OOP:如何与所有类共享MongoDB连接,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1308字,纯文字阅读大概需要2分钟。
内容图文
我正在开发一个Python OOP项目.我必须处理MongoDB交互,但我不想使用像mongoengine这样的ODM.
我想要的是与所有必须与之交互的类共享一个主要的Mongo连接.我认为使用主DB类可能是一个好主意,我有两个解决方案.
解决方案A.
在班级连接
mydb.py
from pymongo import MongoClient
class MyMongoDB(object):
_client = MongoClient('localhost', 27017)
db = _client['name_of_the_db']
在其他课程中:
from mydb import MyMongoDB
class Foo(object):
_db_collection = MyMongoDB.db.foo_collection
def __init__(self):
pass
def set_data(self, data):
Foo._db_collection.insert_one(data)
解决方案A.
实例级别的连接
mydb.py
from pymongo import MongoClient
class MyMongoDB(object):
def __init__(self):
_client = MongoClient('localhost', 27017)
db = _client['name_of_the_db']
在其他课程中:
from mydb import MyMongoDB
class Foo(object):
_db_collection = MyMongoDB().db.foo_collection
def __init__(self):
pass
def set_data(self, data):
Foo._db_collection.insert_one(data)
在解决方案A中,即使我在很多模块中导入MongoDB类,我也有一个主连接.
在解决方案B中,我为每个导入都有一个新实例
我认为解决方案A是正确的方法.不是吗?他们是更好的方法吗?
解决方法:
Python使这很简单.拥有模块级全局变量:
client = MongoClient()
如果那是在像“my_db.py”这样的模块中,那么你可以像这样访问客户端:
from my_db import client
在其他编程语言中存在各种针对全局变量的偏见,但在Python中,这是在整个程序中共享对象的最简单方法.
内容总结
以上是互联网集市为您收集整理的Python OOP:如何与所有类共享MongoDB连接全部内容,希望文章能够帮你解决Python OOP:如何与所有类共享MongoDB连接所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。