在较大的应用程序中使用flask_pymongo分享MongoClient的正确方法是什么?

时间:2017-01-21 01:27:54

标签: python mongodb design-patterns flask pymongo

我正在使用flask_restful构建REST API,我目前正在考虑将其连接到MongoDB数据库。我一直在查看flask_pymongo,如果我已经正确理解你创建了一个代表连接的对象并使用这个对象进行查询。

在示例中,我看到使用了一个文件,对象是全局的。在一个更大的项目中,我需要以某种方式分享这个对象。我是否必须将此对象设为全局或是否有更好的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

对于单个文件(模块),您可以在文件开头的某处实例化连接对象

con = MongoClient(....)

然后您可以在终点定义中使用它 无需将其定义为全局,因为您不打算以任何方式修改其属性。

def endpoint1(....)
    .....
    result = con['dbname']['collectionname'].find({...})

def endpoint2(....)
    .....
    result = con['dbname']['collectionname'].find({...})

如果您在其他模块中需要它,只需导入它。

from yourmodule import con