Guest User

Untitled

a guest
Oct 27th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. import tornado.ioloop
  2. import tornado.web
  3. import tornado.gen as gen
  4. import momoko
  5. from psycopg2.extras import RealDictCursor
  6. from json import dumps
  7. from datetime import date, datetime
  8.  
  9. def json_serial(obj):
  10. """JSON serializer for objects not serializable by default json code"""
  11.  
  12. if isinstance(obj, (datetime, date)):
  13. return obj.isoformat()
  14. raise TypeError ("Type %s not serializable" % type(obj))
  15.  
  16. class UserHandler(tornado.web.RequestHandler):
  17. @property
  18. def db(self):
  19. return self.application.db
  20. @gen.coroutine
  21. def get(self, user_id):
  22. cursor = yield self.db.execute("SELECT u.username as username, u.\"isActive\", u.created as created FROM \"User\" u WHERE id = %s LIMIT 1", (user_id,), cursor_factory=RealDictCursor)
  23. result = cursor.fetchone()
  24. self.set_header("Content-Type", "application/json")
  25. self.write(dumps(result, default=json_serial))
  26. self.finish()
  27.  
  28. def get_app():
  29. app = tornado.web.Application([
  30. (r'/user/([1-9][0-9]*)', UserHandler)
  31. ])
  32. app.db = momoko.Pool(
  33. dsn="dbname=test user=test password=test host=localhost port=5432"
  34. )
  35. app.db.connect()
  36. return app
  37.  
  38. if __name__ == "__main__":
  39. app = get_app()
  40. app.listen(3000)
  41. print("Starting loop")
  42. tornado.ioloop.IOLoop.current().start()
Add Comment
Please, Sign In to add comment