Python 3.6 - Sanic Motorengine
Я пытаюсь настроить новый Sanic
веб-фреймворк (который обещает быть очень быстрым) с motorengine
для достижения 100% асинхронности.
Мои настройки пока:
app = Sanic(__name__)
@app.listener('after_server_start')
async def setup_dbconn(app, loop):
connect("database_name", username="user", password="pass", host="192.168.1.200", port=27017, io_loop=asyncio.get_event_loop())
К сожалению, я получаю:
motorengine.connection.ConnectionError: Cannot connect to database default :
Unknown option username
Почему этот сбой?
1 ответ
Конкретная проблема, с которой вы сталкиваетесь, не о Sanic
но имеет отношение к motorengine
,
Используйте URI базы данных для подключения:
motorengine.connect(
db=name,
alias=alias,
host="mongodb://username:password@localhost:port",
io_loop=tornado.ioloop.IOLoop.instance()
)
Решение пришло из этого билета: https://github.com/heynemann/motorengine/issues/82.
PS: для Sanic >= 0.4.0 вы должны рассмотреть возможность использования расширения sanic-motor!