tornado RequestHandler

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

猜你喜欢

转载自blog.csdn.net/weixin_42694291/article/details/83864230
今日推荐