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()

最新文章

  1. 不能在DropDownList 中选择多个项
  2. JSoup笔记
  3. swift webView 提出这样的要求你能忍吗?
  4. Eclipse中用Logcat调试程序
  5. Put-Me-Down项目Postmortem
  6. C++ Vector 用法总结
  7. HTMLEncode httpencode UTF8Encode
  8. bzoj1151
  9. IOS 原生解析JSON 问题
  10. Openlayers 3 图层探查功能
  11. C#中的逆变和协变
  12. window下phpstudy的nginx配置虚拟主机
  13. JavaScript利用append添加元素报错
  14. 纯C MD5
  15. C# DateTime 转 JavaScript Date
  16. 必读,sql加索引调优案例和explain extended说明
  17. 论文阅读:Memory Networks
  18. 在jstl表达式中嵌入el表达式
  19. 11g adg 环境搭建实施手册-0908
  20. 利用VRID/VMAC实现更安全的netscaler HA故障切换

热门文章

  1. Nginx日志和http模块相关变量
  2. css , dl , dt , dd 的使用. calc
  3. 转:openwrt 框架分析
  4. react-native 自定义 下拉刷新 / 上拉加载更多 组件
  5. 2.3 xpath定位
  6. OpenVPN多用户配置
  7. 九度OJ-1131-合唱排队-双向递增子序列
  8. 非原创。使用ajax加载控件
  9. 关于PHP程序员技术职业生涯规划[转]
  10. HDU 1425 sort C语言实现快速排序