首页 > 解决方案 > 烧瓶错误:sqlalchemy.exc.NoSuchModuleError:无法加载插件:sqlalchemy.dialects:mongodb

问题描述

我基本上是在尝试将我的 mlab 数据库与我的烧瓶应用程序集成,但我一直收到错误消息

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:mongodb

我已经使用 mongo shell 测试了 mlab 数据库,它运行良好,但由于某种原因,应用程序无法访问它

from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

#tells srl alchemy how to connect to our database
app.config['SQLALCHEMY_DATABASE_URI']='mongodb://xxxxx:xxxxxx@ds111103.mlab.com:11103/namebase'

app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]= False


db=SQLAlchemy(app)
class Comment(db.Model):
    id=db.Column(db.Integer,primary_key=True)
    name=db.Column(db.String(20))
    column=db.Column(db.String(200))

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/sign')
def sign():
    return render_template('sign.html')

@app.route("/process",methods=["POST"])
def process():
    name=request.form["name"]
    comment=request.form['comment']
    return render_template("index.html",
                        name=name,comment=comment
                        )


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

标签: pythonmongodbsqlalchemy

解决方案


无法将 MongoDB 与 SQLAlchemy 一起使用。这是因为 SQLAlchemy 认为数据库是一个关系代数引擎。这意味着您的数据库必须是具有行和列的关系数据库,例如 MySQL。请看一下这个答案

另一方面,MongoDB 是一个 NoSQL 数据库,它是一个基于 JSON 的模型。要连接到 Flask 中的 MongoDB 数据库,可以使用一个相对较新的库,称为Flask-MongoAlchemy。用法类似于 Flask-SQLAlchemy。我希望这有帮助。


推荐阅读