set_header()/set_default_headers()

set_header():设置请求头数据

set_default_headers():设置默认请求头数据

import tornado.web
import tornado.ioloop
import tornado.options
import tornado.httpserver
import os
from tornado.options import options
from tornado.web import RequestHandler tornado.options.define('port', type=int, default=8000, help="服务器端口") class IndexHandler(RequestHandler):
# 设置默认的headers请求头
def set_default_headers(self):
# 设置请求头
self.set_header('Content-Type', 'application/json')
self.set_header('name', 'namejr')
def get(self):
self.set_header('name', 'jr') # 设立会更改请求头的name属性(覆盖)
self.write('OK') if __name__ == '__main__':
tornado.options.parse_command_line()
app = tornado.web.Application([
(r'/', IndexHandler),
],
debug=True,
)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.current().start()

set_status(status_code, reason=None)

# 当set_status()中的参数status_code使用的是标准的http中的状态码时,可以不写reason,否则要写

200 OK 请求成功
301 Moved Permanently 资源被永久移动到新的位置
304 Not Modified 有缓存的情况下访问
400 Bad Request 请求有问题
401 Unauthorized 用户验证
403 Forbidden 禁止访问
404  Not Found  请求失败(常见页面不存在) 
 405 Method Not Allowed  请求方式有问题 
500  Internal Server Error  服务器内部问题 

send_error(status_code, **kwargs)和write_error(status_code, **kwargs)

send_error(status_code, **kwargs)  # 主动抛出错误信息,后面的代码不会被执行

write_error(status_code, **kwargs)  # 抛出错误信息,程序不会暂停

# 测试过就会发现,如果使用的是框架自定义的self.send_error()/self.wrtie_error()就会发现,**kwargs不会显示。这种情况下,我们可以进行自定义

import tornado.web
import tornado.ioloop
import tornado.options
import tornado.httpserver
from tornado.options import options
from tornado.web import RequestHandler tornado.options.define('port', type=int, default=8000, help="服务器端口") class IndexHandler(RequestHandler):
# 自定义write_error
def write_error(self, scode, **kwargs):
self.write('错误状态码: {}'.format(scode))
self.write('错误原因: {}'.format(kwargs['content']))
def get(self):
self.write_error(404, content='未找到网页')
self.write('OK') if __name__ == '__main__':
tornado.options.parse_command_line()
app = tornado.web.Application([
(r'/', IndexHandler),
], debug=True)
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.current().start()

接口

initialize() 初始化参数

prepare() 在调用请求前的预处理

on_finish() 在调用请求后的处理

请求(HTTP)的方法有:

  get() 获取资源

  port() 传输实体文本

  delete() 删除文件

  put() 传输文件

  head() 获得报文首部

  options() 询问请求方法

  trace() 追踪路径

  connect() 要求用连接协议连接代理

执行的循序:initialize() -> prepare() -> http方法(该方法中可以调用write_error()/send_error()) -> on_finish()

tornado请求头/状态码/接口 笔记的更多相关文章

  1. Tornado学习笔记(三) 请求方式/状态码

    本章我们来学习 Tornado 支持的请求方式 请求方式 Tornado支持任何合法的HTTP请求(GET.POST.PUT.DELETE.HEAD.OPTIONS).你可以非常容易地定义上述任一种方 ...

  2. curl获取http请求的状态码

    $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_setopt($curl, CUR ...

  3. web请求的状态码

    摘录于  https://www.cnblogs.com/lovychen/p/6256343.html 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行 ...

  4. http状态码学习笔记

    当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求. ...

  5. HTTP 请求的组成 方法 已经 请求的状态码

    HTTP请求是指从客户端到服务器端的请求消息. 包括:消息首行中,对资源的请求方法.资源的标识符及使用的协议.从客户端到服务器端的请求消息包括,消息首行中,对资源的请求方法.资源的标识符及使用的协议. ...

  6. HTTP请求 响应状态码

      1.请求响应方式       get是从服务器上获取数据,post是向服务器传送数据.get 数据在地址栏中明文的形式发送, post则不是,传递的数据比get多 据RFC2616标准(现行的HT ...

  7. HTTP响应头 状态码

    HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传 ...

  8. http 请求code状态码

    状态码 含义 100 客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在 ...

  9. HTTP请求常见状态码

    HTTP状态码(HTTP Status Code) 一些常见的状态码为: 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码.代码 说明 100 (继续) 请求者应当继续提出请求. 服务 ...

随机推荐

  1. Linux运维命令总结(-)

    Linux运维命令总结(-)  此次整理linux运维常用命令13个,常用linux运维命令大概有150个,约占百分之十,大牛见笑,本人菜鸟一枚不才整理如下,如有不正确之处,请多多指正. 1.创建目录 ...

  2. Diamorphine rootkit的使用

    仅作LKM rootkit研究之用,滥用后果自负. 查看支持版本是否为2.6.x/3.x/4.x: uname -r 下载代码: git clone https://github.com/m0nad/ ...

  3. IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决

    问题一: 项目中遇到一个关于日期时间在ios中乱码在安卓中安然无恙的问题,焦躁了半天 问题如上图,通过用户选择的时间和当天的天数相加然后在ios上就是乱码 这个界面运用了日期类型的计算,当我们用Jav ...

  4. Python基础2 字符编码和逻辑运算符

    编码 AscII码 :标准ASCII码是采用7位二进制码来编码的,最高为0,没有0000 0000,所以就是2**7-1=127个字符 , 当用1个字节(8位二进制码)来表示ASCII码时,就在最高位 ...

  5. 微软Power BI 每月功能更新系列——10月Power BI 新功能学习

    Power BI Desktop10月产品功能摘要 本月Power Plus Desktop的更新充满了整个产品的小型和大型改进.一个巨大的更新是Power BI服务支持我们的复合模型和聚合预览.这实 ...

  6. PHP 设计模式系列 —— 工厂方法模式(Factory Method)(转)

    1.模式定义 定义一个创建对象的接口,但是让子类去实例化具体类.工厂方法模式让类的实例化延迟到子类中. 2.问题引出 框架需要为多个应用提供标准化的架构模型,同时也要允许独立应用定义自己的域对象并对其 ...

  7. JavaBasic_05

    方法 简述:实现特定功能的代码块 格式 修饰符: 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…){           函数体;           return 返回值;} 方法格式 ...

  8. mysql手动设置数据表的自增值

    设置表tablename的自增值从1开始自增值 alter table tablename auto_increment=1;

  9. [LeetCode&Python] Problem 237. Delete Node in a Linked List

    Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...

  10. 20155219 2016-2017-2 《Java程序设计》第3周学习总结

    20155219 2016-2017-2 <Java程序设计>第3周学习总结 教材学习内容总结 数组问题 -Scanner实例,猜数字. package src.week1; import ...