2017-10-14 5 views
2

Ich versuche das neue Sanic Webframework (das extrem schnell ist) mit motorengine einzurichten, um 100% async zu erreichen.Python 3.6 - Sanic Motorengine

Mein Setup so weit:

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()) 

Leider bekomme ich:

motorengine.connection.ConnectionError: Cannot connect to database default : 
Unknown option username 

Warum dieser Absturz?

+0

ich ersetzte motorengine mit seinem synchronen äquivalenten mongoengine .. und es funktioniert wie erwartet .. kann sich jemand darauf beziehen? –

Antwort

0

Das spezifische Problem, auf das Sie stoßen, ist nicht über Sanic, sondern hat mit motorengine zu tun.

Verwenden Sie die Datenbank URI verbinden:

motorengine.connect(
    db=name, 
    alias=alias, 
    host="mongodb://username:[email protected]:port", 
    io_loop=tornado.ioloop.IOLoop.instance() 
)  

Die Lösung kam von diesem Ticket: https://github.com/heynemann/motorengine/issues/82.


PS: Für Sanic> = 0.4.0 Sie sollten mit sanic-motor Erweiterung betrachten!