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) ...
随机推荐
- Vue.js 系列教程 4:Vuex
这是关于 JavaScript 框架 Vue.js 五个教程的第四部分.在这一部分,我们会学习使用 Vuex 进行状态管理. 这不是一个完整的指南,而是基础知识的概述,所以你可以了解 Vue.js 以 ...
- Codeforces Round #396.D
D. Mahmoud and a Dictionary time limit per test 4 seconds memory limit per test 256 megabytes input ...
- win8配置JDK
有很多新手朋友对win7 和win8里的环境变量不是很熟悉,下面我整理了一下: 首先要说一下,win7里和win8配置方法是相同的,配置之前先去百度一下 JDK 然后找到自己电脑系统对应的jdk版本下 ...
- 《汇编语言程序设计》——仿windows计算器
<汇编语言程序设计> ——计算器程序设计 目录 一. 题目与目标 1. 题目 2. 学习目的 二. 分析与设计 1. 系统分析 2. ...
- JAVA设计模式:单例设计
1.单例设计Singleton的引出 单例设计,从名字上首先可以看出单---即只有一个,例---只的是实例化对象:那么单例也就是说一个类,只产生了一个实例化对象.但是我们都知道,一个类要产生实例化对象 ...
- groovy学习(一)列表
numbers = [11, 12, 13, 14]println(numbers[0])println(numbers[3])println(numbers[-1])//最左边的元素println( ...
- php查询,多条件查询
单条件查询: 1.先要有一张表,显示出表中的数据: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- ajax 做登录 实现页面免刷新
结合之前学的知识,可以用ajax来传递数据,实现页面不用刷新,仅数据刷新,来看一下ajax是怎么来实现页面免刷新的 方的是客户端,圆的是服务器 如果没有ajax的话,客户端直接把数据传给服务器,服务器 ...
- jquery与js的区别与基础操作
一.什么是 jQuery jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法.它的作者是John Resig,于2006年创建的一个开源项目,随着 ...
- Objective-c日记-之属性列表
属性列表 1,概述 在Cocoa中,有一类名为属性列表的对象(常简写为plist),Cocoa知道如何将它们保存到文件和从文件中加载.包括以下类NSArray,NSDictionary,NSStrin ...