Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tornado.ioloop
- import tornado.web
- import tornado.gen as gen
- import momoko
- from psycopg2.extras import RealDictCursor
- from json import dumps
- from datetime import date, datetime
- def json_serial(obj):
- """JSON serializer for objects not serializable by default json code"""
- if isinstance(obj, (datetime, date)):
- return obj.isoformat()
- raise TypeError ("Type %s not serializable" % type(obj))
- class UserHandler(tornado.web.RequestHandler):
- @property
- def db(self):
- return self.application.db
- @gen.coroutine
- def get(self, user_id):
- 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)
- result = cursor.fetchone()
- self.set_header("Content-Type", "application/json")
- self.write(dumps(result, default=json_serial))
- self.finish()
- def get_app():
- app = tornado.web.Application([
- (r'/user/([1-9][0-9]*)', UserHandler)
- ])
- app.db = momoko.Pool(
- dsn="dbname=test user=test password=test host=localhost port=5432"
- )
- app.db.connect()
- return app
- if __name__ == "__main__":
- app = get_app()
- app.listen(3000)
- print("Starting loop")
- tornado.ioloop.IOLoop.current().start()
Add Comment
Please, Sign In to add comment