繁体   English   中英

Flask-Pymongo DB 返回为 None

[英]Flask-Pymongo DB is returning as None

我正在尝试使用 Flask-Pymongo 创建一个 webapp,但它说我的数据库不存在。

这是我的初始.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 端连接,但我假设它与 init.py 文件中的 create_app() function 有关。 你看到我想念的东西了吗? 任何帮助,将不胜感激

如文档中所述,代码缺少连接 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM