python 之tornado 入门
#!/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 入门的更多相关文章
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
- Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...
- Python简单爬虫入门二
接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...
- Python不完全入门指南
适用范围: 有一定编程基础,想快速入门python的人群 说明: 使用jupyter notebook编写,可以使用nbviewer网站进行查看. Python不完全入门指南 项目放在github上, ...
- GJM : Python简单爬虫入门(二) [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- 【Python】使用python的tornado配合html页面示例
背景:java写的非标加密算法,测试时执行java工程进行解密测试,很不方便. 目的:想写个web页面,使得任何测试人员都可以在输入加密串时得到解密后字段,方便日志查询及字段核对.(额,算法部分就不写 ...
- Python第一天——入门Python(1)数据定义
数据类型: 什么是数据? 在计算机科学中,数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字字母.符号和模拟量等的统称.现在计算机存储和处 ...
- Python系列之入门篇——HDFS
Python系列之入门篇--HDFS 简介 HDFS (Hadoop Distributed File System) Hadoop分布式文件系统,具有高容错性,适合部署在廉价的机器上.Python ...
- Python系列之入门篇——MYSQL
Python系列之入门篇--MYSQL 简介 python提供了两种mysql api, 一是MySQL-python(不支持python3),二是PyMYSQL(支持python2和python3) ...
随机推荐
- 读书笔记 effective c++ Item 11 在operator=中处理自我赋值
1.自我赋值是如何发生的 当一个对象委派给自己的时候,自我赋值就会发生: class Widget { ... }; Widget w; ... w = w; // assignment to sel ...
- supervisor踩坑记录
线上一直以来都在用supervisor管理各项服务,感觉非常舒心,supervisor管理`gunicorn`和`celery`进程,web服务和异步任务各司其职,跑起来一直很稳定. 前段时间却不小心 ...
- 用phpcms如何将静态页面制作成企业网站,头部加尾部
首先,先要准备好这个静态网页的源文件,如图 bs里面是一些css和js的文件,img则是放图片的,文件中的index是网页的首页 运行一下,看看 是这样的 然后打开phpcms文件,上篇博客中有提到, ...
- SpringBoot实践 - SpringBoot+mysql
关于springBoot是个神马东西以及优缺点,请自行搜索了解. LZ看到很多关于SpringBoot的Demo,单看一篇总是没法整合SpringBoot与Mysql.没法子,还是自己操刀来一发为妙. ...
- 硅谷创业教父Paul Graham:如何获得创业idea
link:http://kb.cnblogs.com/page/165530/ 英文原文:How to Get Startup Ideas,翻译:Jason Zheng 要想获得创业 idea,请别试 ...
- 【转载】HTTP Cookie学习笔记
什么是cookie? cookie是什么?是饼干,小甜点? No! No! No! 我今天要总结的cookie并不是你所想的小甜心,我这里要说的cookie是Web开发中的一个重要的"武器& ...
- MySQL逻辑备份利器-mydumper
关于mydumper的简介和下载请访问:https://launchpad.net/mydumper 简言之,mydumper是多线程逻辑备份,对于表和数据量很大的情况下,建议使用mydumper提高 ...
- 【Java基础】 static
static static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念.被 ...
- PHP字符串三种定义方式
PHP的字符串有三种定义方式:单引号 .双引号 .定界符 1.单引号:指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来. 在被单引号括起来的字符串中,要再表示一个单引号,需要用反斜线(\ ...
- Material Design学习-----CollapsingToolbarLayout
博客引用(http://www.open-open.com/lib/view/open1438265746378.html) CollapsingToolbarLayout为我们提供了一个很方便的顶部 ...