tornado请求头/状态码/接口 笔记

摘要:
set_ header()/set_ default_ headers()set_ header():设置请求头数据set_ default_ headers():设定默认的请求头数据importtornado。webimporttornado。龙卷风。龙卷风选项。httpserverimportortos来自龙卷风。可选端口

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,否则要写

200OK请求成功
301Moved Permanently资源被永久移动到新的位置
304Not Modified有缓存的情况下访问
400Bad Request请求有问题
401Unauthorized用户验证
403Forbidden禁止访问
404 Not Found 请求失败(常见页面不存在) 
 405Method 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请求头/状态码/接口 笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇byte[] 与 bitmap 转换.NET跨平台机制一(mono for android配置教程)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Tornado安装

进入:https://pypi.org 搜tornado 进入tornado这个文件夹 执行:python setup.py install Tornado应该运行在类Unix平台,在线上部署时为了最佳的性能和扩展性,仅推荐Linux和BSD(因为充分利用Linux的epol工具和BSD的kqueue工具,是Tormado不依靠多进程/多线程...

Tornado 【简述】

前言 python 旗下,群英荟萃,豪杰并起。单是用于 web 开发的,就有 webpy、web2py、bottle、pyramid、zope2、flask、tornado、django 等等,不一而足。最近几年较为流行的,大概也就是flask、tornado 和 django 了。 关于以上各个 web 开发框架的性能比较,上网一搜,铺天盖地——这不是...

环境配置——tornado项目准备工作

新建tornado项目后,采用Pycharm作为开发工具,采用Xshell链接Ubuntu模拟服务端方便方便测试。项目编码前进行以下几个方面的配置。 1.Ubuntu配置  1.1安装ssh服务 sudo apt-get install openssh-serve 2.Xshell配置  下载安装Xshell软件,并链接虚拟机 3.需安装包 3.1安装vi...

如何在tornado中以异步的方式调用同步函数

问题 如何在tornado的coroutine中调用同步阻塞的函数 解决方案 使用python内置标准库的concurrent.futures.ThreadPoolExecutor和tornado.concurrent.run_on_executor 解决示例 a.使用concurrent.futures.ThreadPoolExecutor #-*-co...

tornado输入-get_query_argument()等 笔记

最外面的代码结构 import tornado.web import tornado.ioloop import tornado.options import tornado.httpserver from tornado.options import options from tornado.web import RequestHandler # 使用...

django面试题必问

1、谈谈你对http协议的认识。 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请...