tornado RequestHandler

本文深入探讨了Tornado Web框架的核心组件RequestHandler类,详细解析了其初始化、请求处理及响应生成机制。介绍了如何通过重写initialize()和prepare()方法自定义处理流程,以及使用get_argument()等工具函数获取客户端输入。同时,展示了如何利用set_status()和write()等方法生成响应结果。

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

RequestHandler类是配置和相应URL请求的核心类。

from tornado.web import RequestHandler
from tornado.web import Application

#RequestHandler.initialize() :子类实例初始化,允许传参
class ProfileHandler(RequestHandler):
    def initialize(self, database):   #参数database由Application定义URL映射时以字典方式给出
        self.database = database

    def get(self):
        pass

    def post(self):
        pass

app = Application([(r'/account', ProfileHandler, dict(database="c:\\example.db"))])

1.重写initialize()函数,改变实例的初始化过程

2.RequestHandler.prepare()用于调用请求处理(get或者post)方法之前的初始化处理,类似于flask中接入点函数before_request函数,而RequestHandler.on_finist()函数请求处理之后的一些工作,类似于flask中after_request函数。不同的是flask是装饰器,tornado是重写!

3.每个HTTP请求处理时有对应的Action函数:

       get、head、post、delete、patch、put、options

4.RequestHandler提供了用于获取客户端输入的工具函数:

       get_argument(name)用于获取单个值,get_argument(name)用于参数多个值,查询的是URL查询字符串与POST提交参数的合集

       get_query_argument(name)与get_query_arguments(name)跟上述差不多,只不过只用于查询URL字符串

       get_body_argument(name) 与   get_body_arguments(name)只用于查询POST提交参数

       get_cookies(name,default=None)根据Cookie名称获取Cookie值

       request函数用于返回tornado.httputil.HTTPServerRequest对象实例的属性,用例self.request.host/ip等等!

5.提供了为客户端生成处理结果的工具函数:

       RequestHandler.set_status(status_code,reason=None):设置response返回码,reason设置描述性语句

       RequestHandler.set_header(name,value):以键值对形式设置Response中的头参数,会覆盖之前的设置

       RequestHandler.add_header(name,value):这个是添加,不会覆盖之前的设置

       RequestHandler.write(chunk):发送HTTP body发送个客户端

       RequestHandler.finish(chunk):通知response的生成工作完成

       RequestHandler.render(template_name,**kwargs):用于参数渲染模板

       RequestHandler.redirect():页面重定向

       RequestHandler.clear():清空之前的设置内容一般用于set_header函数之后

       RequestHandler.set_cookie(name,value):键值对形式设置cookie值

       RequestHandler.clear_all_cookies():清除本次请求的所有cookie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值