antsbean / sanic-motor

simple motor wrapper for sanic

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

simple motor wrapper for sanic


Languages

Language:Python 69.5%Language:HTML 30.5%