Flask-Mongoengine, всегда принимает информацию о соединении по умолчанию вместо config (localhost: 27017: [Errno 61] ECONNREFUSED) - PullRequest
0 голосов
/ 24 февраля 2019

Я настраиваю соединение с базой данных при создании моего приложения фляги следующим образом:

def create_app(config_file=None):
    app = Flask(__name__)
    # app.config.from_pyfile(config_file, silent=True)
    app.config.from_object(config_file)

    # db.init_app(app, config=app.config['MONGODB_SETTINGS'])
    db.init_app(app, config={
        'db': "DB_NAME",
        'host': "docker-mongodb",
        'port': "27017",
        'username': 'myuser',
        'password': '******'
    })

Однако при доступе к остальной точке входа, которая запрашивает базу данных через объект модели Mongoengine, pymongo выдает ошибку, когдапытается подключиться к localhost, другими словами, он не читает конфигурацию.

Класс модели:

from app import db
from app.domain.platform_integration import PlatformIntegration


class Company(db.Document):
    name = db.StringField()
    type = db.StringField()

Rest api:

(...)
results = list(Company.objects.aggregate(*pipeline))
return JSONEncoder().encode(results)

Этоlog:

    def _select_servers_loop(self, selector, timeout, address):
        """select_servers() guts. Hold the lock when calling this."""
        now = _time()
        end_time = now + timeout
        server_descriptions = self._description.apply_selector(
            selector, address)

        while not server_descriptions:
            # No suitable servers.
            if timeout == 0 or now > end_time:
                raise ServerSelectionTimeoutError(
>                   self._error_message(selector))
E               pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 61] ECONNREFUSED

../../outflink-env/lib/python3.7/site-packages/pymongo/topology.py:199: ServerSelectionTimeoutError

Что я делаю не так?Даже если я передаю другой порт в конфигурации, он всегда ломается, пытаясь подключиться к настройкам по умолчанию.

Спасибо!

...