博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 之tornado 入门
阅读量:4315 次
发布时间:2019-06-06

本文共 2944 字,大约阅读时间需要 9 分钟。

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 time10 from tornado.web import RequestHandler11 from tornado.web import Application12 from tornado.ioloop import IOLoop13 from tornado.log import app_log14 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\n')74         self.flush()75         for x in range(10):76             self.write('{0}\n'.format(x))77             self.flush()78             time.sleep(0.1)79         self.finish('complete\n')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
.*)', 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()

 

转载于:https://www.cnblogs.com/topicjie/p/5385447.html

你可能感兴趣的文章
IE10 For Windows 7 预览版开放下载
查看>>
FreeBSD 9.1 正式版已经可以下载
查看>>
Telerik ASP.NET AJAX Q1 2013支持持久化框架和iOS6
查看>>
整合 Ext JS 和第三方类库
查看>>
靶形数独【贪心+深搜】
查看>>
读大道至简第三章有感
查看>>
BeforeFieldInit的小叙
查看>>
TeamViewer的下载地址,低调低调
查看>>
005 线程ID和线程的优先级
查看>>
POJ 3067 Japan (树状数组 && 控制变量)
查看>>
python基础条件和循环
查看>>
an exciting trip
查看>>
【转】xmind8 破解激活教程
查看>>
Mysql用命令方式启动服务
查看>>
【贪心】codeforces A. Heidi and Library (easy)
查看>>
【leetcode】lower_bound
查看>>
跨站请求伪造(CSRF)
查看>>
EF Code First数据库映射规则及配置
查看>>
.Net StackFrame
查看>>
Qt 学习之路:视图选择 (QItemSelectionModel)
查看>>