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