• python 之tornado 入门


     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # ---------------------------------------
     4 # email  : gengjie@outlook.com
     5 # Create Time: 4/9/16 20:58
     6 # ----------------------------------------
     7 
     8 import json
     9 import time
    10 from tornado.web import RequestHandler
    11 from tornado.web import Application
    12 from tornado.ioloop import IOLoop
    13 from tornado.log import app_log
    14 
    15 
    16 class ArgumentHandler(RequestHandler):
    17     '''return last name value'''
    18     def get(self):
    19         self.write('hello {0}'.format(self.get_argument('name')))
    20 
    21 
    22 class ArgumentsHandler(RequestHandler):
    23     '''return all name args'''
    24     def get(self):
    25         self.write('hello {0}'.format(', '.join(self.get_arguments('name'))))
    26 
    27 
    28 class BodyHandler(RequestHandler):
    29     '''Get body'''
    30     def post(self):
    31         body = json.loads(self.request.body.decode())
    32         app_log.warning(self.request.body.decode())
    33         self.write('hello {0}'.format(body['name']))
    34 
    35 
    36 class PathArgsHandler(RequestHandler):
    37     def get(self, *args, **kwargs):
    38         self.write('hello {0}'.format(args[0]))
    39 
    40 
    41 class PathKwargsHandler(RequestHandler):
    42     def get(self, *args, **kwargs):
    43         self.write('hello {0}'.format(kwargs['name']))
    44 
    45 
    46 class RemoteHandler(RequestHandler):
    47     '''Get client Ip'''
    48     def get(self, *args, **kwargs):
    49         self.write(self.request.remote_ip)
    50 
    51 
    52 class FobiddenHandler(RequestHandler):
    53     def get(self, *args, **kwargs):
    54         self.set_status(403)
    55         self.write('forbidden')
    56 
    57 
    58 class CustomStatusHandler(RequestHandler):
    59     def get(self, *args, **kwargs):
    60         self.set_status(498, reason='Custom Error.')
    61         self.finish()
    62 
    63 
    64 class HeaderHandler(RequestHandler):
    65     def get(self, *args, **kwargs):
    66         self.set_header('X-Header', 'Set_001')
    67         self.add_header('X-Header', 'Add_001')
    68         self.write('hello head')
    69 
    70 
    71 class MultWriteHandler(RequestHandler):
    72     def get(self, *args, **kwargs):
    73         self.write('start
    ')
    74         self.flush()
    75         for x in range(10):
    76             self.write('{0}
    '.format(x))
    77             self.flush()
    78             time.sleep(0.1)
    79         self.finish('complete
    ')
    80 
    81 
    82 if __name__ == '__main__':
    83     app = Application(
    84         [
    85             (r'/', ArgumentHandler),
    86             (r'/args', ArgumentsHandler),
    87             (r'/body', BodyHandler),
    88             (r'/path/args/(.*)', PathArgsHandler),
    89             (r'/path/kwargs/(?P<name>.*)', PathKwargsHandler),
    90             (r'/ip', RemoteHandler),
    91             (r'/403', FobiddenHandler),
    92             (r'/498', CustomStatusHandler),
    93             (r'/head', HeaderHandler),
    94             (r'/multi', MultWriteHandler)
    95         ]
    96     )
    97     app.listen(port=8001, address='0.0.0.0')
    98     IOLoop.current().start()
  • 相关阅读:
    Python之datetime模块
    PEP8规范 Python
    redis操作命令
    Django之Cookie、Session和自定义分页
    登录之验证码相关实现
    装饰器进阶
    js中的cookie使用和vue-cookie的使用
    vue-cli的安装使用
    Django之进阶相关操作
    PyMySQL模块的使用
  • 原文地址:https://www.cnblogs.com/topicjie/p/5385447.html
Copyright © 2020-2023  润新知