Python 如何访问Flask中的MongoDB实例

Python 如何访问Flask中的MongoDB实例,python,mongodb,flask,Python,Mongodb,Flask,我有一个非常简单的Flask RESTful应用程序,我想把我的逻辑分割开来,这样它就可以维护了。如果没有循环导入问题,我无法确定如何从另一个文件访问我的mongoDB连接。我确信一定有一种方法可以创建和/或返回实例的数据库文件,但我还没能破解它 仅供参考。我已经从实际代码中删除了一些位,所以这个示例可能无法实际运行,但希望能提供一个基本设置的示例 结构 app.py api __init__.py foo.py app.py from flask import Flask,

我有一个非常简单的Flask RESTful应用程序,我想把我的逻辑分割开来,这样它就可以维护了。如果没有循环导入问题,我无法确定如何从另一个文件访问我的mongoDB连接。我确信一定有一种方法可以创建和/或返回实例的数据库文件,但我还没能破解它

仅供参考。我已经从实际代码中删除了一些位,所以这个示例可能无法实际运行,但希望能提供一个基本设置的示例

结构

app.py
api
    __init__.py
    foo.py
app.py

from flask import Flask, request, abort, json, Response
from flask_restful import Resource, Api
from flask_pymongo import PyMongo

from api.foo import Foo


app = Flask(__name__)
api = Api(app)

app.config['MONGO_DBNAME'] = 'mydb'
app.config['MONGO_URI'] = 'mongodb://localhost:27017/mydb'

mongo = PyMongo(app)

# Routes
api.add_resource(Foo, '/foo', '/foo/<id>')

if __name__ == '__main__':
    app.run(debug=True)
app.py

from flask import Flask, request, abort, json, Response
from flask_restful import Resource, Api
from flask_pymongo import PyMongo

from api.foo import Foo


app = Flask(__name__)
api = Api(app)

app.config['MONGO_DBNAME'] = 'mydb'
app.config['MONGO_URI'] = 'mongodb://localhost:27017/mydb'

mongo = PyMongo(app)

# Routes
api.add_resource(Foo, '/foo', '/foo/<id>')

if __name__ == '__main__':
    app.run(debug=True)
从烧瓶导入烧瓶
从restful导入Api
从比蒙戈进口比蒙戈
app=烧瓶(名称)
api=api(应用程序)
app.config['MONGO_DBNAME']='mydb'
app.config['MONGO_URI']='mongodb://localhost:27017/mydb'
mongo=PyMongo(应用程序)
#路线
从foo进口foo#noqa
api.add_资源(Foo,'/Foo','/Foo/'))
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run(debug=True)
福比

来自flask\u restful导入资源
Foo类(资源):
def get(自我,id):
印刷品(mongo)
返回{'get':'Sample data'}
从应用程序导入mongo#noqa

在我的最小代码示例中,我在文件末尾导入了依赖项。这样可以避免循环依赖。我希望这对您有用。

谢谢您的回答,将mongo数据库导入移到文件底部已解决了我的循环导入问题。但这是如何工作的,我认为在调用它之前需要导入它。这可能是因为我的RESTful方法中的代码在以后调用之前不会被读取。