Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- import datetime
- from aiomysql.sa import create_engine
- import sqlalchemy as sa
- from sanic import Sanic
- from sanic.response import json
- database_name = 'db_name'
- database_host = '127.0.0.1'
- database_user = 'root'
- database_password = '***'
- metadata = sa.MetaData()
- user = sa.Table(
- 'user',
- metadata,
- sa.Column('id', sa.Integer, primary_key=True),
- sa.Column('created', sa.DateTime, default=datetime.datetime.now),
- sa.Column('updated', sa.DateTime, default=datetime.datetime.now),
- sa.Column('deleted', sa.Boolean())
- )
- app = Sanic(name=__name__)
- @app.listener('before_server_start')
- async def prepare_db(app, loop):
- """ Let's add some data
- """
- db_config = {
- 'user': database_user,
- 'db': database_name,
- 'host': database_host,
- 'password': database_password
- }
- app.pool = {
- 'sqlalchemy': await create_engine(**db_config)
- }
- @app.listener('before_server_stop')
- async def stop(app, loop):
- await app.pool['sqlalchemy'].close()
- @app.route('/')
- async def handle(request):
- async with app.pool['sqlalchemy'].acquire() as conn:
- result = []
- async for row in conn.execute(user.select()):
- result.append(
- {
- 'account_id': row.account_id,
- 'cloud_id': row.cloud_id
- }
- )
- return json({'user': result})
- if __name__ == '__main__':
- app.run(host='0.0.0.0', port=8888, debug=True, workers=4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement