diff options
Diffstat (limited to 'app/__init__.py')
-rw-r--r-- | app/__init__.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..3fb828f --- /dev/null +++ b/app/__init__.py @@ -0,0 +1,38 @@ +from sanic import Sanic +import config +from asyncpg import create_pool +import jinja2_sanic +from jinja2 import FileSystemLoader +import logging +from .in_log import LOG_SETTINGS +from .util import URLCoder +from .schema import schema_up + +blure = Sanic(__name__, log_config=LOG_SETTINGS) +log = logging.getLogger('blure') + +jinja2_sanic.setup(blure, loader=FileSystemLoader('app/templates')) +blure.config.from_object(config) +blure.static('/static', './app/static') +blure.url = URLCoder(blure.config.APP_SECRET[::2]) # cut secret, because it is too long + + +@blure.listener('before_server_start') +async def setup_db(_app, loop): + _app.pool = await create_pool(_app.config.PG_URI, loop=loop) + async with _app.pool.acquire() as conn: + await create_tables(conn) + + +@blure.listener('after_server_stop') +async def close_db_conns(_app, loop): + await _app.pool.close() + + +from . import views # noqa # unused-import, E402 + + +async def create_tables(conn): + async with conn.transaction(): + for statement in schema_up: + await conn.execute(statement) |