我基本上是试图将我的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)
答案 0 :(得分:3)
不可能将MongoDB与SQLAlchemy一起使用。这是因为SQLAlchemy认为数据库是关系代数引擎。这意味着您的数据库必须是具有行和列的关系数据库,例如MySQL。请看看这个answer。
另一方面,MongoDB是NoSQL数据库,它是基于JSON的模型。要连接Flask中的MongoDB数据库,可以使用一个相对较新的库,名为Flask-MongoAlchemy。用法类似于Flask-SQLAlchemy。我希望这会有所帮助。