python - 烧瓶错误: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)
解决方案
无法将 MongoDB 与 SQLAlchemy 一起使用。这是因为 SQLAlchemy 认为数据库是一个关系代数引擎。这意味着您的数据库必须是具有行和列的关系数据库,例如 MySQL。请看一下这个答案。
另一方面,MongoDB 是一个 NoSQL 数据库,它是一个基于 JSON 的模型。要连接到 Flask 中的 MongoDB 数据库,可以使用一个相对较新的库,称为Flask-MongoAlchemy。用法类似于 Flask-SQLAlchemy。我希望这有帮助。
推荐阅读
- html - 如何确定 inline-flex div 的宽度?
- python - (Python) dash 核心组件 - ModuleNotFound
- python - SQLAlchemy执行语句退出python没有错误
- url - Razor 客户端库页面回调到父 Blazor 服务器页面
- java - 在全屏模式下运行应用程序时,Java Swing 无法找出 JPanel 的问题
- python-3.x - 403 使用 python 请求,200 使用 cURL
- ios - 有没有办法为 windows 和 mac 交叉编译/构建铬?
- java - 跟踪并发执行任务的进度
- datadog - 通过 Datadog HTTP API 发送的指标不会反映在指标资源管理器中
- python-2.7 - NiFi 上的 Python 2.X:json.loads 中的Ñ(和其他)问题