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类的主要内容,如果未能解决你的问题,请参考以下文章