Tornado异步框架

简介:

  • tornado是Python的web框架。
  • tornado和主流的web服务器框架有明显的区别:
  • 它是非阻塞式服务器,而且速度非常快,得力于其非阻塞的方式和epoll的运用
  • tornado可以每秒处理数以千计的连接(号称)

基本配置

1.  app文件

  • 包含__init__.py文件和视图文件
  • init文件是为了让文件变成模块导包使用

base.py

import json
import tornado.web


class BaseHandel(tornado.web.RequestHandler):

    # 初始化方法
    def __init__(self, *args, **kwargs):
        # 初始化父级的方法,防止被子级__init__覆盖
        tornado.web.RequestHandler.__init__(self, *args, **kwargs)

    # 重写options方法,避免报错
    def options(self, *args):
        self.set_status(204)
        self.finish()

    # 跨域
    def set_default_headers(self):
        # 请求来源
        self.set_header("Access-Control-Allow-Origin", "*")
        # 请求方式
        self.set_header("Access-Control-Allow-Methods", "POST,GET,PUT,DELETE,TRACE,HEAD,PATCH,OPTIONS")
        # 请求头
        self.set_header("Access-Control-Allow-Headers", "*")

    # 重写finish方法
    def finish(self, chunk=None):
        if chunk is not None and not isinstance(chunk, bytes):  # 判断是否是字节码
            chunk = json.dumps(chunk,
                               indent=4,  # 默认四个空格
                               sort_keys=True,  # 按照keys排序
                               default=str,  # 默认类型都是字符串
                               ensure_ascii=False)  # 禁止转码

        try:
            # 解决乱码的问题
            tornado.web.RequestHandler.write(self, chunk)
        except Exception as e:
            print(e.args)

        tornado.web.RequestHandler.finish(self)
  • 初始化父级方法,防止被子级覆盖
  • 重写options方法,为了能跨域成功,防止报405<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值