bwangel23
10/26/2016 - 1:32 AM

test.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.ioloop import IOLoop

import aioredis
import os

from tornado.options import define, options

define("port", default=8888, help="run on the given port", type=int)

async def redis_connect(loop):
    redistogo_url = os.getenv('REDISTOGO_URL', None)
    if redistogo_url:
        redis_url = redistogo_url
        redis_url = redis_url.split('redis://')[1]
        redis_url = redis_url.split('/')[0]
        REDIS_USER, redis_url = redis_url.split(':', 1)
        REDIS_PWD, redis_url = redis_url.split('@', 1)
        REDIS_HOST, REDIS_PORT = redis_url.split(':', 1)
    else:
        REDIS_HOST = '127.0.0.1'
        REDIS_PORT = 6379
        REDIS_PWD = None
        REDIS_USER = None
    client = await aioredis.create_redis(
        (REDIS_HOST, REDIS_PORT), loop=loop)
    # the following three line code is for testing
    await client.set('my-key', 'xff')
    val = await client.get('my-key')
    print(val)
    return client


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")


class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
            (r"/", MainHandler),
        ]
        self.redis = redis_connect(IOLoop.current())
        super(Application, self).__init__(handlers)


def main():
    tornado.options.parse_command_line()
    http_server = tornado.httpserver.HTTPServer(Application())
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.current().start()


if __name__ == "__main__":
    main()