Я настраиваю соединение с базой данных при создании моего приложения фляги следующим образом:
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
Что я делаю не так?Даже если я передаю другой порт в конфигурации, он всегда ломается, пытаясь подключиться к настройкам по умолчанию.
Спасибо!