#!/usr/bin/env python
# -*- coding:utf-8 -*-
# ---------------------------------------
# email : gengjie@outlook.com
# Create Time: 4/9/16 20:58
# ---------------------------------------- import json
import time
from tornado.web import RequestHandler
from tornado.web import Application
from tornado.ioloop import IOLoop
from tornado.log import app_log class ArgumentHandler(RequestHandler):
'''return last name value'''
def get(self):
self.write('hello {0}'.format(self.get_argument('name'))) class ArgumentsHandler(RequestHandler):
'''return all name args'''
def get(self):
self.write('hello {0}'.format(', '.join(self.get_arguments('name')))) class BodyHandler(RequestHandler):
'''Get body'''
def post(self):
body = json.loads(self.request.body.decode())
app_log.warning(self.request.body.decode())
self.write('hello {0}'.format(body['name'])) class PathArgsHandler(RequestHandler):
def get(self, *args, **kwargs):
self.write('hello {0}'.format(args[0])) class PathKwargsHandler(RequestHandler):
def get(self, *args, **kwargs):
self.write('hello {0}'.format(kwargs['name'])) class RemoteHandler(RequestHandler):
'''Get client Ip'''
def get(self, *args, **kwargs):
self.write(self.request.remote_ip) class FobiddenHandler(RequestHandler):
def get(self, *args, **kwargs):
self.set_status(403)
self.write('forbidden') class CustomStatusHandler(RequestHandler):
def get(self, *args, **kwargs):
self.set_status(498, reason='Custom Error.')
self.finish() class HeaderHandler(RequestHandler):
def get(self, *args, **kwargs):
self.set_header('X-Header', 'Set_001')
self.add_header('X-Header', 'Add_001')
self.write('hello head') class MultWriteHandler(RequestHandler):
def get(self, *args, **kwargs):
self.write('start\n')
self.flush()
for x in range(10):
self.write('{0}\n'.format(x))
self.flush()
time.sleep(0.1)
self.finish('complete\n') if __name__ == '__main__':
app = Application(
[
(r'/', ArgumentHandler),
(r'/args', ArgumentsHandler),
(r'/body', BodyHandler),
(r'/path/args/(.*)', PathArgsHandler),
(r'/path/kwargs/(?P<name>.*)', PathKwargsHandler),
(r'/ip', RemoteHandler),
(r'/403', FobiddenHandler),
(r'/498', CustomStatusHandler),
(r'/head', HeaderHandler),
(r'/multi', MultWriteHandler)
]
)
app.listen(port=8001, address='0.0.0.0')
IOLoop.current().start()

python 之tornado 入门的更多相关文章

  1. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  2. Python简单爬虫入门三

    我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...

  3. Python简单爬虫入门二

    接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...

  4. Python不完全入门指南

    适用范围: 有一定编程基础,想快速入门python的人群 说明: 使用jupyter notebook编写,可以使用nbviewer网站进行查看. Python不完全入门指南 项目放在github上, ...

  5. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  6. 【Python】使用python的tornado配合html页面示例

    背景:java写的非标加密算法,测试时执行java工程进行解密测试,很不方便. 目的:想写个web页面,使得任何测试人员都可以在输入加密串时得到解密后字段,方便日志查询及字段核对.(额,算法部分就不写 ...

  7. Python第一天——入门Python(1)数据定义

    数据类型: 什么是数据? 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母.符号和模拟量等的统称.现在计算机存储和处 ...

  8. Python系列之入门篇——HDFS

    Python系列之入门篇--HDFS 简介 HDFS (Hadoop Distributed File System) Hadoop分布式文件系统,具有高容错性,适合部署在廉价的机器上.Python ...

  9. Python系列之入门篇——MYSQL

    Python系列之入门篇--MYSQL 简介 python提供了两种mysql api, 一是MySQL-python(不支持python3),二是PyMYSQL(支持python2和python3) ...

随机推荐

  1. 在vim中,使用可视化拷贝(剪切)粘贴文本

    1  定位光标到你想要开始剪切的位置 2 按v选择字符(按V是选择整行) 3 移动光标到你想要结束剪切的位置 4 按d是为了剪切(按y是为了拷贝) 5 移动光标到你想要粘贴的位置 6 按P是在光标之前 ...

  2. <input/>标签在 苹果浏览器中 默认的有圆角

    解决方法: input{ border-radius:0; -webkit-border-radius:0; }

  3. 游戏UI框架设计(三) : 窗体的层级管理

    游戏UI框架设计(三) ---窗体的层级管理 UI框架中UI窗体的"层级管理",最核心的问题是如何进行窗体的显示管理.窗体(预设)的显示我们前面定义了三种类型: 普通.隐藏其他.反 ...

  4. tcp粘包和拆包的处理方案

    随着智能硬件越来越流行,很多后端开发人员都有可能接触到socket编程.而很多情况下,服务器与端上需要保证数据的有序,稳定到达,自然而然就会选择基于tcp/ip协议的socekt开发.开发过程中,经常 ...

  5. connect函数的用法

    无论流式套接字(如TCP)还是数据报(如UDP),均可以使用connect函数.对于流式套接字,使用connect函数后,建立固定地址的连接,之后可以使用send/rev函数进行数据收发.对于数据报, ...

  6. li点击弹出序号

    <body> <ul> <li>test1</li> <li>test2</li> <li>test3</li ...

  7. HTML友情链接代码

    <div align="center">     <table width="980" height="35" borde ...

  8. wemall app商城源码中android按钮的三种响应事件

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码中android按 ...

  9. Codevs2018 反病毒软件

    2018 反病毒软件 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond  查看运行结果   题目描述 Description 其实这个“反病毒软件”(Anti ...

  10. 网络AFNetworking 3.1

    下面的类已从AFNetworking 3.0中废弃: AFURLConnectionOperation AFHTTPRequestOperation AFHTTPRequestOperationMan ...