simple motor wrapper for sanic
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example temp fix for different loop attached May 15, 2017
sanic_motor fix bug: use abs path for reading version Aug 27, 2018
tests temp fix for different loop attached May 15, 2017
.gitignore
README.md update unique spec Jun 30, 2017
setup.cfg add setup.cfg Feb 16, 2017
setup.py fix bug: use abs path for reading version Aug 27, 2018

README.md

sanic-motor

Simple motor wrapper for Sanic.

Notice:
Works on Sanic >= 0.4.0 and MOTOR_URI need to be defined in app.config

Installation

pip install sanic-motor

Usage

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from sanic import Sanic
from sanic_jinja2 import SanicJinja2
from sanic_motor import BaseModel

app = Sanic(__name__)

settings = dict(MOTOR_URI='mongodb://localhost:27017/myapp',
                LOGO=None,
                )
app.config.update(settings)

BaseModel.init_app(app)
jinja = SanicJinja2(app, autoescape=True)


class User(BaseModel):
    __coll__ = 'users'
    __unique_fields__ = ['name']
    # __unique_fields__ = ['name, age']   # name and age for unique


@app.route('/')
async def index(request):
    cur = await User.find(sort='name')
    return jinja.render('index.html', request, users=cur.objects)


if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8000, debug=True)

see examples and source code for details.

Run example:

$cd example
$virtualenv venv
$. venv/bin/activate
$pip install -r requirements.txt
$python myapp.py

Open http://localhost:8000 to see the example page.

example