import tornado.web       # web服务
import tornado.ioloop # I/O 时间循环 class MainHandler(tornado.web.RequestHandler):
def initialize(self,name):
self.name = name
print 'initialize方法执行' def prepare(self):
print 'prepare方法执行' def set_default_headers(self):
print 'set_default_headers方法执行'
self.set_header("Access-Control-Allow-Origin", "*")
self.set_header("Access-Control-Allow-Headers", "x-requested-with")
self.set_header("Access-Control-Allow-Methods", "POST, GET, OPTIONS") # 响应以get方式发起的请求
def get(self, *args, **kwargs):
print 'get方法执行'
self.write("hello world!") # 响应以post方式发起的请求
def post(self, *args, **kwargs):
print 'post方法执行'
self.write(json.dumps({"status": "success", "data": task_list})) def on_finish(self):
print 'on_finish方法执行' def write_error(self, status_code, **kwargs):
print 'write_error方法执行'
super().write_error(status_code, **kwargs) app = tornado.web.Application([
(r"/index", MainHandler, dict(name="name")),
]) if __name__ == "__main__":
app.listen(8000) # 监听端口
# tornado.ioloop.IOLoop.current().start()
tornado.ioloop.IOLoop.instance().start() # 开始事件

在正常情况下没跑出错误的顺序:

  • set_default_headers:设置头
  • initialize:初始化
  • prepare:预处理(类似于django的中间件作用)
  • HTTP方法(get、post....)
  • on_finish:响应结束后的处理

跑出异常错误的情况下的顺序:

  • set_default_headers
  • initialize
  • prepare
  • http
  • set_default_headers:这里错误信息 是因为响应错误,需要修改头
  • write_error:重写错误信息
  • on_finish:响应结束后做内存释放,日志处理等操作

https://blog.csdn.net/qq_20042935/article/details/100325953

https://www.cnblogs.com/qianzhengkai/p/11348023.html

Tornado—接口调用时方法执行顺序的更多相关文章

  1. Tornado之接口调用时方式执行顺序

    Tornado之接口调用顺序 initialize() 作用:做一些初始化操作 prepare() 作用:预处理方法,在执行对应的请求方法之前调用 注意:任何一种HTTP请求,都会执行prepare方 ...

  2. Spring的Bean的生命周期方法执行顺序测试

    通过一个简单的Maven工程来演示Spring的Bean生命周期函数的执行顺序. 下面是工程的目录结构: 直接贴代码: pom.xml文件内容: <?xml version="1.0& ...

  3. tableView代理方法执行顺序

    tableView代理方法执行顺序,随着iOS系统版本的不断升级,执行顺序也有所变化 1.iOS7.1中先依次调一遍heightForRow方法再依次调一遍cellForRow方法,在调cellFor ...

  4. Restful API接口调用的方法总结

    restful 接口调用的方法 https://www.cnblogs.com/taozhiye/p/6704659.html http://www.jb51.net/article/120589.h ...

  5. Javascript在页面加载时的执行顺序【转】

    一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属 ...

  6. SpringMVC拦截器及多拦截器时的执行顺序

    本文链接:https://blog.csdn.net/itcats_cn/article/details/80371639拦截器的配置步骤 springmvc.xml中配置多个拦截器配置自定义拦截器并 ...

  7. Java问题解读系列之基础相关---含继承时的执行顺序

    今天来研究一下含继承.静态成员.非静态成员时Java程序的执行顺序: 一.不含继承,含有静态变量.静态代码块 创建一个子类,该类包含静态变量.静态代码块.静态方法.构造方法 /** * @create ...

  8. UITableView的全部属性、方法以及代理方法执行顺序,看过之后肯定有收获---董鑫

    UITableView-------表视图--继承UIScrollView并遵守NSCoding协议 属性 frame-------------设置控件的位置和大小 backgroundColor-- ...

  9. PHP 使用 curl_* 系列函数和 curl_multi_* 系列函数进行多接口调用时的性能对比

    在页面中调用的服务较多时,使用并行方式,即使用 curl_multi_* 系列函数耗时要小于 curl_* 系列函数. 测试环境 操作系统:Windows x64 Server:Apache PHP: ...

随机推荐

  1. 最新设计打样制作完成的FPGA视频开发板VIP—V101

    设计目的:1.摄像头驱动(30w-500w mipi接口)2.VGA显示器驱动3.USB2.0视频采集4.tft液晶接口(ttl.lvds驱动)5.视频.图像处理(算法验证)6.各种视频接口处理(av ...

  2. Python3 类与对象之王者荣耀对战小游戏

    王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...

  3. 基于RT-Thread的开源飞控StarryPilot

    背景描述 近年来无人机应用市场日趋火热,无人机开始被应用在多个领域之中,比如航拍,植保,运输,安防等.随着应用场景的增加,对于无人机的大脑一飞控,的性能和功能要求也变得越来越高.国内具有一大批优质的无 ...

  4. 函数中this的指向

    每个函数在被调用时都会自动取得两个特殊变量:this和arguments:内部函数在搜索这两个变量时,只会搜索到其活动对象为止,因此永远不可能直接访问外部函数中的这两个变量. f 1 var name ...

  5. oc实现小型学生管理系统

                              首先,创建一个工程,然后加入两个cocoaclass,分别命名为Student   和 StudentSystem.   然后就可以开始写代码喽   ...

  6. Linux内核构建过程

    构建内核 # shell 执行如下指令make zImage 全局变量 srctree    := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))objtree ...

  7. python学习-caculator

    # 运算符操作# 算术运算符num_a = 100num_b = 5000 # 加法print(num_a + num_b)# 减法print(num_a - num_b)# 乘法 *print(nu ...

  8. Ubuntu18.04 配置Cups PDF虚拟打印机服务

    更新 sudo apt update && sudo apt upgrade -y 安装cups pdf服务 sudo apt-get install cups-pdf -y 修改配置 ...

  9. Windows10 中的字母映射表

    有很多朋友为寻找特殊字符串而感到烦恼, windows10中的字符映射表有所有字体 包含的特殊符号 windows键 + R键 输入 charmap 点击确定 即可出现 字母映射表 可在字符的下拉按钮 ...

  10. Linux防火墙的相关资料

    1.查看防火墙状态 [root@localhost ~]# service iptables status 2.编辑/etc/sysconfig/iptables文件.我们实例中要打开8080端口和9 ...