烧瓶错误:sqlalchemy.exc.NoSuchModuleError:无法加载插件:sqlalchemy.dialects:mongodb

时间:2018-07-03 16:43:31

标签: python mongodb sqlalchemy

我基本上是试图将我的mlab数据库与我的flask应用程序集成在一起,但我不断收到错误消息

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)

1 个答案:

答案 0 :(得分:3)

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

另一方面,

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