tornado中RequsetHandler的使用

本文详细介绍了Tornado Web框架中的RequestHandler类,包括其初始化、请求处理前后的准备与清理方法,以及GET、POST等HTTP请求方法的使用。同时,阐述了如何在请求中获取参数、设置状态码、写入响应数据及自定义错误页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用示意,RequsetHandler中可能常会用到的一些地方

import json

from tornado.web import RequestHandler


class MainHandler(RequestHandler):

    # 入口
    def initialize(self, demo):
        # 用于初始化handler类的过程
        self.demo = demo

    def prepare(self):
        # 该方法 用户真正调用请求处理之前的初始化方法
        # 如 可以用于打印日志 ,清理内存
        pass

    def on_finish(self):
        # 关闭句柄 清理内存
        pass

    # http方法
    def get(self, *args, **kwargs):
        # 只用于在get方法中能用;传的参数不存在时 会报400
        data1 = self.get_query_argument("name")  # 得到一个字符串
        data2 = self.get_query_arguments("name")  # 得到一个list
        # 如访问 http://127.0.0.1:8888/?name=bobby1&name=bobby2
        # 可以得到['bobby1','bobby2']
        # 在post请求中也可以获取到参数值
        data3 = self.get_argument("name")   # 得到一个字符串
        data4 = self.get_arguments("name")  # 得到一个list
        pass

    def post(self, *args, **kwargs):
        data1 = self.request.arguments  # 所有参数都会取出来
        data2 = self.get_arguments("name")

        # 适用于在接收json数据时,在请求体header中设置了application/json时才可以用
        # param = self.request.body.decode('utf-8')
        # data = json.loads("param")
        data3 = self.get_body_argument("test")
        data4 = self.get_body_arguments("test")
        # 设置状态码
        self.set_status(500)
        # write可以写数据到缓存区 访问时可以一次性将所有的数据返回
        self.write('1')
        self.write('2')
        self.finish({"name" : "bobby"})   # 可以自动返回json
        self.write('3')  # 调用了finish后 3就返回不出来了
        self.write_error()  # 用于返回错误页面
        pass

    def delete(self, *args, **kwargs):
        pass

    def put(self, *args, **kwargs):
        pass

    def patch(self, *args, **kwargs):
        pass

    # 自定义错误页面
    def write_error(self, status_code, **kwargs):
        pass
    # 输出
    # set_status, write, finish, redirect, write_error

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值