Ошибка колбы: sqlalchemy.exc.NoSuchModuleError: Не удается загрузить плагин: sqlalchemy.dialects: mongodb - PullRequest
0 голосов
/ 03 июля 2018

Я в основном пытаюсь интегрировать свою базу данных mlab с моим приложением в флягу, и я получаю сообщение об ошибке

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

Я уже тестировал базу данных mlab, используя оболочку mongo, и она работала нормально, но по какой-то причине у приложения возникла проблема с доступом к нему

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 голосов
/ 03 июля 2018

Невозможно использовать MongoDB с SQLAlchemy. Это потому, что SQLAlchemy считает базу данных движком реляционной алгебры. Это означает, что ваша база данных должна быть реляционной базой данных со строками и столбцами, такими как MySQL. Пожалуйста, взгляните на этот ответ .

MongoDB, с другой стороны, является базой данных NoSQL, которая является моделью на основе JSON. Для подключения к базе данных MongoDB во Flask доступна относительно новая библиотека под названием Flask-MongoAlchemy . Использование похоже на Flask-SQLAlchemy. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...