Python 3.6 - Sanic Motorengine

3

我正在尝试使用承诺非常快速的新款Sanic Web框架与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

这个为什么会崩溃?

我用它的同步替代物mongoengine替换了motorengine,结果正常运行了。有人能提供参考吗? - Creative crypter
1个回答

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 扩展!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接