tornado 响应头 中断 状态码 工作流程

set_header    设置响应头

clear_header 清除响应头

add_header   增加响应头

self.flush  self.finish  中断

set_status     设置状态码

工作流程

  lesso3.py

  1 # -*- coding:utf-8 -*-
  2
  3 import tornado.web
  4 import tornado.httpserver
  5 import tornado.options
  6 import tornado.ioloop
  7 from tornado.options import define,options
  8
  9 define(‘port‘, default=8080, help=‘run port‘, type=int)
 10 define(‘version‘, default=‘0.0.1‘, help=‘version 0.0.1‘, type=str)
 11
 12
 13 class SetHandler(tornado.web.RequestHandler):
 14
 15     def get(self):
 16         self.write(‘set_header‘)
 17         self.set_header(‘aaa‘,111) # 设置响应头
 18         self.set_header(‘ccc‘,222)
 19         self.set_header(‘ccc‘,333) # 重复这是会覆盖前面的
 20         self.clear_header(‘ccc‘)   # 清除响应头
 21         self.add_header(‘ccc‘,333) # 增加响应头
 22
 23
 24 class AddHandler(tornado.web.RequestHandler):
 25
 26     def get(self):
 27         self.write(‘add_header‘)
 28         self.add_header(‘abc‘,444)  # 增加响应头
 29
 30
 31 class SendHandler(tornado.web.RequestHandler):
 32
 33     def get(self):
 34         self.write(‘send_error <br>‘)
 35         # self.flush()  # 如果加上这个flush会小小的中断一下 后面的send_error 不会执行 write 会执行
 36         # self.finish()  # 如果加上这个finish会彻底中断,后面的任何指令都不会执行
 37         self.write(‘我被执行了‘)
 38         self.send_error(404)
 39
 40
 41 class NotFoundHandler(tornado.web.RequestHandler):
 42
 43     def get(self, *args, **kwargs):
 44         self.send_error(404)
 45
 46     def write_error(self, status_code, **kwargs):
 47         self.render(‘error.html‘)
 48
 49
 50
 51 class StatusHandler(tornado.web.RequestHandler):
 52
 53     def get(self, *args, **kwargs):  # 重写状态码
 54         self.write(‘set_status‘)
 55         self.set_status(200,‘every good !‘)
 56
 57
 58 ‘‘‘工作流程‘‘‘
 59 class IndexHandler(tornado.web.RequestHandler):
 60
 61     def set_default_headers(self):
 62         print(‘-----set_default_headers:设置headers----‘)
 63
 64     def initialize(self):
 65         print(‘----initialize: 初始化----‘)
 66
 67     def prepare(self):
 68         print(‘----prepare:准备工作----‘)
 69
 70     def get(self, *args, **kwargs):
 71         self.write(‘----get 处理请求----‘)
 72
 73     def post(self, *args, **kwargs):
 74         self.write(‘----post 处理请求----‘)
 75
 76     def write_error(self, status_code, **kwargs):
 77         self.render(‘error.html‘)
 78
 79     def on_finish(self):
 80         print(‘----on_finish: 处理结束 释放资源----‘)
 81
 82
 83
 84
 85 application = tornado.web.Application(
 86     handlers = [
 87     (r"/",SetHandler),
 88     (r"/add",AddHandler),
 89     (r"/send",SendHandler),
 90     (r"/status",StatusHandler),
 91     (r"/index",IndexHandler),
 92     (r"/(.*)",NotFoundHandler),
 93     ],
 94     template_path = ‘./error‘,
 95     debug = True,
 96 )
 97
 98 if __name__ == ‘__main__‘:
 99     print(options.port)
100     print(options.version)
101     tornado.options.parse_command_line()
102     http_server = tornado.httpserver.HTTPServer(application)
103     http_server.listen(options.port)
104     tornado.ioloop.IOLoop.instance().start()

原文地址:https://www.cnblogs.com/zlsgh/p/8478463.html

时间: 2024-07-31 08:21:21

tornado 响应头 中断 状态码 工作流程的相关文章

常见的http请求头,响应头,状态码

请求头 响应头 状态码

http请求头响应头及状态码列表

HTTP响应头和请求头信息对照表 HTTP请求头提供了关于请求,响应或者其他的发送实体的信息.HTTP的头信息包括通用头.请求头.响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成. 通用头标:即可用于请求,也可用于响应,是作为一个整体而不是特定资源与事务相关联. 请求头标:允许客户端传递关于自身的信息和希望的响应形式. 响应头标:服务器和于传递自身信息的响应. 实体头标:定义被传送资源的信息.即可用于请求,也可用于响应. 根据以上分类的HTTP请求头介绍可以参考此文,本工具

响应报文的状态码

响应报文的状态码 状态码用来告诉HTTP客户端HTTP服务器是否产生了预期的response.状态码总共只有三位,第一位表示状态类别,总共分五种. (1) 1xx: 是进度通知类状态,意思就是说"请求我已经收到了,或你的请求我正在处理". (2) 2xx: 表示"你的请求我已经成功处理了". (3) 3xx: 即重定向,也就是服务器告诉客户端"你要的资源搬家了,你到某某地方再去找它吧". (4) 4xx: 客户端发来的响应报文里有些错误,比如语法

HTTP请求响应报文&amp;&amp;相关状态码&amp;&amp;GET_POST请求方法 总结

HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行   请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GET /data/info.html HTTP/1.1 方法字段就是HTTP使用的请求方法,比如常见的GET/POST 其中HTTP协议版本有两种:HTTP1.0/HTTP1.1 可以这样区别: HTTP1.0对于每个连接都的建立一次连接一次只能传送一个请求和响应,请求就会关闭,HTTP1.0没有Ho

php笔记06:http响应中的状态码

首先我们看一个360浏览器中使用开发截图如下: 上面的Status Code:200  OK (这个就是状态码) 1.状态码主要用于服务器对请求的处理结果,它是一个三位的十进制数.响应状态码分为5类,如下所示: 100~199:表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程. 200~299:表示成功接收请求,并且已经完成整个处理过程,常用的是200. 300~399:为完成请求,客户需进一步细化请求.例如,请求的资源已经移动一个新地址,常用为302/304. 400~499

HTTP协议(8)HTTP响应报文和状态码

对于HTTP响应报文,比较重要的信息主要有两部分,一部分是响应行中的状态码,另一部分是响应头.下面分别介绍.响应头信息中比较重要的部分: (1) Server,服务端所使用的Web服务名称,如:Server:Apache/1.3.6(Unix). (2) Set-Cookie:服务器向客户端设置的Cookie. (3) Last-Modified,服务器通过这个域告诉客户端浏览器,资源的最后修改时间. (4) Location:重定向用户到另一个页面,比如身份认证通过之后就会转向另一个页面.这个

GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)

最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮助. GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'desc

【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

找到一篇很详细的Git教程,真的很不错,推荐!!! GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  . GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'description' ; -- 本地git仓库关联GitHub仓库 : git remote add origin [email 

客户端请求、服务器响应及其HTTP状态码

一JSP客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信 息头的一部分来传送的.我们可以查阅HTTP协议来获得更多的信息. 下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息: (1)HttpServletRequest类 request对象是javax.servlet.http.HttpServletRequest类的实例.每当客户端请求一个页面时,JSP引擎就会产 生一个新的对象来代表这个请求. re