tornado.web-RequestHandler和Application类

Posted Sages

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tornado.web-RequestHandler和Application类相关的知识,希望对你有一定的参考价值。

tornado.web-RequestHandler和Application类

class tornado.web.RequsetHandler() HTTP请求处理的基类

RequestHandler.initialize()用于子类初始化的构造函数,会被每个请求调用。url规范的第三方参数的字典会被作为initialize()构造函数的关键字参数使用。

RequestHandler.prepare会在get/post等请求开始前就被调用。可以使用gen.coroutine装饰器或者async def使其异步(asynchronous装饰器不能被使用在prepare上)

RequestHandler.onfinish()在一起请求结束的时候被调用。重写这个方法以执行清理和日志记录等。这个方法与prepare对应。onfinish不会产生任何输出,因为它只会在响应返回给客户端后才会被调用。

异步装饰器:gen.coroutine,reutrn_future,asynchronous

RequestHandler.get(args,kwargs) RequestHandler.head(args,kwargs) RequestHandler.post(args,kwargs) RequestHandler.delete(args,kwargs) RequestHandler.patch(args,kwargs) RequestHandler.put(args,kwargs) RequestHandler.options(args,*kwargs)

入参

RequestHandler.get_argument(name,default=,strip=True) 获取输入的name参数的值,如果参数是默认不提供的,将会抛出一个名为MissingArgumentError错误,如果url中提供了不止一个关键字参数,那么将提供最近的一个;获取的返回值通常是Unicode编码的。


RequestHandler.get_arguments(name,strip=True) 返回name对应的参数列表list,如果参数不存在会返回一个空列表,结果是Unicode编码的。

RequestHandler.getqueryargument(name, default=, strip=True)获取输入的name参数的值,如果参数是默认不提供的,将会抛出一个名为MissingArgumentError错误,如果url中提供了不止一个关键字参数,那么将提供最近的一个;获取的返回值通常是Unicode编码的。


RequestHandler.getqueryarguments(name, strip=True) 返回name对应的参数列表list,如果参数不存在会返回一个空列表,结果是Unicode编码的。

RequestHandler.getbodyargument(name, default=, strip=True)返回从请求体中获取的指定的参数。 获取输入的name参数的值,如果参数是默认不提供的,将会抛出一个名为MissingArgumentError错误,如果url中提供了不止一个关键字参数,那么将提供最近的一个;获取的返回值通常是Unicode编码的。


RequestHandler.getbodyarguments(name, strip=True)返回请求体中name对应的参数列表list,如果参数不存在会返回一个空列表,结果是Unicode编码的。

RequestHandler.decode_argument(value, name=None)从请求体中解码一个参数。这个方法默认以utf-8解码参数,并返回Unicode字符串,这可以在子类中被重写

输出

RequestHandler.setstatus(statuscode,reason=None)在我们的响应中设置状态码

Parameters:

status_code (int) 响应状态码
reason (str) 状态码详细提示

RequestHandler.set_header(name, value) 设置响应头和值

RequestHandler.add_header(name, value) 添加响应头和值

RequestHandler.clear_header(name) 清理输出头,撤销预设的设置头的调用

RequestHandler.setdefaultheaders() 在请求开始的时候重写HTTP头

RequestHandler.write(chunk) 将chunk写入输出缓冲区

RequestHandler.flush(include_footers=False, callback=None) 将当前输出缓冲区刷新到网络。

RequestHandler.finish(chunk=None) 完成此响应

RequestHandler.render(template_name, **kwargs) 通过给定的参数渲染模板作为响应数据。

RequestHandler.renderstring(templatename, **kwargs) 通过被给的参数生成模板。

RequestHandler.gettemplatenamespace() 返回一个被用于默认模板的命名空间的字典。

RequestHandler.redirect(url, permanent=False, status=None) 重定向

RequestHandler.senderror(statuscode=500, **kwargs) 向浏览器发送HTTP错误码

RequestHandler.writeerror(statuscode, **kwargs) 重写自定义错误提示页

RequestHandler.clear() 重置这个响应的所有请求头和内容

tornado可以渲染js和css文件:

RequestHandler.renderlinkedjs(js_files)

RequestHandler.renderembedjs(js_embed)

RequestHandler.renderlinkedcss(css_files)

RequestHandler.renderembedcss(css_embed)

Cookies

RequestHandler.cookies 是self.request.cookies的别名

RequestHandler.get_cookie(name, default=None) 返回所给命名的请求cookie的值

RequestHandler.setcookie(name, value, domain=None, expires=None, path='/', expiresdays=None, **kwargs) 使用给定选项设置输出的cookie

RequestHandler.clear_cookie(name, path='/', domain=None) 删除指定名称的cookie

RequestHandler.clearallcookies(path='/', domain=None) 删除此用户通过这个请求发送的所有cookie

RequestHandler.getsecurecookie(name, value=None, maxagedays=31, min_version=None) 返回安全cookie的签名秘钥版本

RequestHandler.setsecurecookie(name, value, expires_days=30, version=None, **kwargs) 标记并时间戳一个cookie,防止cookie被伪造

RequestHandler.createsignedvalue(name, value, version=None) 标记并时间戳一个cookie,防止cookie被伪造

tornado.web.MINSUPPORTEDSIGNEDVALUEVERSION = 1 此版本的Tornado支持的最早的有符号值版本。

tornado.web.MAXSUPPORTEDSIGNEDVALUEVERSION = 2

tornado.web.DEFAULTSIGNEDVALUE_VERSION = 2

tornado.web.DEFAULTSIGNEDVALUEMINVERSION = 1

其他

RequestHandler.application Application对象服务这个请求

RequestHandler.checketagheader() 检查Etag头是否与请求If-None-Match相违背

RequestHandler.checkxsrfcookie() 验证xsrf的cookie是否与xsrf的参数匹配

RequestHandler.compute_etag() 计算用于此请求的etag头

RequestHandler.createtemplateloader(template_path) 返回给给定路径新的模板加载程序

RequestHandler.current_user 为这个请求认证用户

RequestHandler.detach() 控制底层流

RequestHandler.getbrowserlocale(default='en_US') 获取浏览器的语言

RequestHandler.getcurrentuser() 重写以确定当前用户的身份

RequestHandler.getloginurl() 基于请求重写定义登录URL

RequestHandler.get_status() 返回响应的状态码

RequestHandler.gettemplatepath() 为每个处理器重新定义模板文件的路径

RequestHandler.getuserlocale() 重新定义认证用户的locale

RequestHandler.locale 当前session的locale

RequestHandler.log_exception(typ, value, tb) 重新定义未捕获的异常日志

RequestHandler.onconnectionclose() 如果客户端关闭连接,此方法会在异步处理器中beidiaoyong

RequestHandler.require_setting(name, feature='this feature')

RequestHandler.reverseurl(name, *args) Application.reverseurl的别名

RequestHandler.setetagheader() 为使用self.compute_etag()的响应设置Etag头

RequestHandler.settings self.application.settings的别名

RequestHandler.staticurl(path, includehost=None, **kwargs) 当被给一个相对文件路径时,返回一个绝对路径

RequestHandler.xsrfformhtml() 一个html标签将包含所有POST表单

RequestHandler.xsrf_token 从当前用户或session中获取XSRF-prevention的token

Application 配置

class tornado.web.Application(handlers=None, default_host=None, transforms=None, **settings)





以上是关于tornado.web-RequestHandler和Application类的主要内容,如果未能解决你的问题,请参考以下文章