Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- import tornado.web
- import asyncio
- import asyncpg
- import logging
- import tornado.concurrent
- logger = logging.getLogger('chat.' + __name__)
- def asyncio_coroutine(func):
- func = asyncio.coroutine(func)
- def decorator(*args, **kwargs):
- future = tornado.concurrent.Future()
- def future_done(f):
- try:
- future.set_result(f.result())
- except Exception as e:
- future.set_exception(e)
- asyncio.async(func(*args, **kwargs)).add_done_callback(future_done)
- return future
- return decorator
- class BaseHandler(tornado.web.RequestHandler):
- @asyncio.coroutine
- async def _get_engine(self):
- engine = await asyncpg.connect(user='m4bulmagd', database='chatdb', host='localhost', password='123')
- return engine
- @asyncio.coroutine
- async def select(self, sqlquery):
- conn = await self._get_engine()
- # with (yield from engine) as conn:
- data = await conn.fetch(sqlquery)
- return data
- @asyncio.coroutine
- async def insert(self, sqlquery):
- conn = await self._get_engine()
- #with (yield from engine) as conn:
- await conn.execute(sqlquery)
- ############################################################
- class LoginHandler(BaseHandler):
- @asyncio_coroutine
- def get(self):
- db_messages = yield from self.select('''select * from "user"''')
- self.render("login.html")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement