@velllum

Python как подключится к удаленной базе Mongo с помощью flask-mongoengine?

Вечер добрый

Не получается битый час подключится к базе на Mongo, используя библиотеку flask-mongoengine, также пробовал чистую mongoengine, без безрезультатно. Ответ один
mongoengine.connection.ConnectionFailure: You have not defined a default connection

До этого пробовал тоже самое с библиотекой Flask-PyMongo и все работает ок!

помогите разобраться что делаю не так

"VIEW"
from flask import render_template
from app import app
from models import UserProduct

@app.route("/")
def index():
    products = UserProduct.objects
    print(products)


"APP"
from flask import Flask
from flask_mongoengine import MongoEngine
from config import Configuration

app = Flask(__name__)
app.config.from_object(Configuration)

db = MongoEngine()


"CONFIG"
class Configuration(object):
    DEBUG = True
    JSON_AS_ASCII = False
    SECRET_KEY = 'secret_key'
    MONGODB_SETTINGS = "mongodb+srv://"name":"pass"@cluster0-vkzx6.mongodb.net/"base"?retryWrites=true&w=majority"


"MODELS"
from mongoengine import *

class UserProduct(Document):
    description = StringField()
    order_num = IntField()
    link = StringField()


В админке монго на странице https://cloud.mongodb.com/ Network Access доступ к ip полностью открыт 0.0.0.0/0
К доступу базу данных открыто два пользователя с админ правами атласа

что делать, как правильно подключится не могу понять !

Заранее благодарю за любую помощь!
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
@velllum Автор вопроса
Благодарю за помощь!

Пример рабочего варианта

from flask import Flask
from flask_mongoengine import MongoEngine

app = Flask(__name__)


app.config['DEBUG'] = True
app.config['SECRET_KEY'] = "key"
app.config['JSON_AS_ASCII '] = False
app.config['MONGODB_HOST'] = "mongodb+srv://<user_name>:<pass>@cluster0-vkzx6.mongodb.net/<db_name>?retryWrites=true&w=majority"

db = MongoEngine(app)


from mongoengine import *

class User(Document):
    description = StringField()
    order_num = IntField()
    link = StringField()


@app.route("/")
def index():
    user = User.objects
    print(user)

if __name__ == "__main__":
    app.run()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы