mongodb Flask-Pymongo数据库返回为无

x33g5p2x  于 2023-01-30  发布在  Go
关注(0)|答案(1)|浏览(161)

我尝试用Flask-Pymongo创建一个webapp,但是它说我的数据库不存在。
这是我的__init__.py

import os
from flask import Flask
from flask_pymongo import PyMongo

mongo = PyMongo()

def init_app():

    app = Flask(__name__)
    app.config.from_pyfile('config.py')
    mongo.init_app(app)
    
    with app.app_context():
        from temp.routes.stage_routes import stage_route
        app.register_blueprint(stage_route)
    
    return app

这是我的db.py(temp是顶级目录)

from temp.__init__ import mongo

db = mongo.db

这是我的一张蓝图,上面有查询数据库的路线

from flask import Blueprint

from temp.db import db

stage_route = Blueprint('stage_route', __name__, url_prefix='/stages')

@stage_route.route('/')
def home():
    return 'This is the home page for the stage blueprint'

@stage_route.route('/all')
def all():
    stage = db.stages.find() # This is where the error is
    print(stage)

由于某种原因,我得到了错误消息“NoneType没有属性'stages'",因为它说db变量是none。我不知道为什么会发生这种情况,因为数据库和集合确实存在,并且MONGO_URI字符串是从配置文件加载的。我可以看到它是在mongodb端连接的,但我假设它与www.example.com文件中的create_app()函数有关init.py。您是否发现我遗漏了什么?如果您能提供帮助,我们将不胜感激

bcs8qyzn

bcs8qyzn1#

代码缺少连接URI字符串,如文档中所述-

from flask import Flask
from flask_pymongo import PyMongo

app = Flask(__name__)

# The missing URI
app.config["MONGO_URI"] = "mongodb://localhost:27017/myDatabase"

mongo = PyMongo(app)

相关问题