【问题标题】:What is the proper way to share MongoClient using flask_pymongo in larger application?在大型应用程序中使用 flask_pymongo 共享 MongoClient 的正确方法是什么?
【发布时间】:2017-01-21 01:27:53
【问题描述】:
我正在使用 flask_restful 构建一个 REST API,我目前正在考虑将它连接到一个 MongoDB 数据库。我一直在查看 flask_pymongo,如果我理解正确,您可以创建一个表示连接的对象并将该对象用于您的查询。
在示例中,我看到使用了一个文件并且对象是全局的。在一个更大的项目中,我需要以某种方式共享这个对象。我是否必须将此对象设为全局对象,还是有更好的方法来处理它?
【问题讨论】:
标签:
python
mongodb
design-patterns
flask
pymongo
【解决方案1】:
对于单个文件(模块),您在文件开头的某处实例化连接对象
con = MongoClient(....)
然后您可以在端点定义中使用它
无需将其定义为全局,因为您不会以任何方式修改其属性。
def endpoint1(....)
.....
result = con['dbname']['collectionname'].find({...})
def endpoint2(....)
.....
result = con['dbname']['collectionname'].find({...})
如果您在其他模块中需要它,只需将其导入即可。
from yourmodule import con