Advertisement
Guest User

Untitled

a guest
Jun 17th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. # coding: utf-8
  2.  
  3. import datetime
  4.  
  5. from aiomysql.sa import create_engine
  6. import sqlalchemy as sa
  7.  
  8. from sanic import Sanic
  9. from sanic.response import json
  10.  
  11. database_name = 'db_name'
  12. database_host = '127.0.0.1'
  13. database_user = 'root'
  14. database_password = '***'
  15.  
  16. metadata = sa.MetaData()
  17.  
  18. user = sa.Table(
  19. 'user',
  20. metadata,
  21. sa.Column('id', sa.Integer, primary_key=True),
  22. sa.Column('created', sa.DateTime, default=datetime.datetime.now),
  23. sa.Column('updated', sa.DateTime, default=datetime.datetime.now),
  24. sa.Column('deleted', sa.Boolean())
  25. )
  26.  
  27.  
  28. app = Sanic(name=__name__)
  29.  
  30.  
  31. @app.listener('before_server_start')
  32. async def prepare_db(app, loop):
  33. """ Let's add some data
  34. """
  35. db_config = {
  36. 'user': database_user,
  37. 'db': database_name,
  38. 'host': database_host,
  39. 'password': database_password
  40. }
  41. app.pool = {
  42. 'sqlalchemy': await create_engine(**db_config)
  43. }
  44.  
  45.  
  46. @app.listener('before_server_stop')
  47. async def stop(app, loop):
  48. await app.pool['sqlalchemy'].close()
  49.  
  50.  
  51. @app.route('/')
  52. async def handle(request):
  53. async with app.pool['sqlalchemy'].acquire() as conn:
  54. result = []
  55. async for row in conn.execute(user.select()):
  56. result.append(
  57. {
  58. 'account_id': row.account_id,
  59. 'cloud_id': row.cloud_id
  60. }
  61. )
  62. return json({'user': result})
  63.  
  64.  
  65. if __name__ == '__main__':
  66. app.run(host='0.0.0.0', port=8888, debug=True, workers=4)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement