cherrypy._cprequest模块¶
- class cherrypy._cprequest.Hook(callback, failsafe=None, priority=None, **kwargs)[源代码]¶
基类:
object
回调及其元数据:故障安全、优先级和kwargs。
- callback = None¶
此Hook对象正在包装的空可调用对象,它将在调用Hook时调用。
- failsafe = False¶
如果为True,则即使来自同一调用点的其他回调引发异常,也保证回调运行。
- kwargs = {}¶
将在每次调用时传递给可调用对象的一组关键字参数。
- priority = 50¶
定义钩子列表的执行顺序。优先级数应限制在闭合间隔内 [0,100] ,但是超出此范围的值是可以接受的,分数值也是可以接受的。
- class cherrypy._cprequest.HookMap(points=None)[源代码]¶
基类:
dict
调用点到回调列表(Hook对象)的映射。
- copy() a shallow copy of D ¶
- class cherrypy._cprequest.Request(local_host, remote_host, scheme='http', server_protocol='HTTP/1.1')[源代码]¶
基类:
object
HTTP请求。
此对象表示HTTP请求消息的元数据;也就是说,它包含描述发送请求URL、标头和正文的环境的属性(如果您希望工具解释标头和正文,则它们在别处,主要在工具中)。这个“元数据”由套接字数据、传输特征和请求行组成。该对象还包含关于给定URL的有效配置以及用于生成响应的执行计划的数据。
- app = None¶
处理此请求的cherrypy.Application对象。
- base = ''¶
//host)部分请求的URL。在某些情况下(例如,当通过mod_rewrite代理时),这可能包含cherrypy.url在构建url时使用的路径段,但否则cherryPy会忽略这些路径段。无论如何,此值不得以劈开结尾。
- 类型
(方案)
- body = None¶
如果请求的Content-Type为‘application/x-www-form-urlencode’或multipart,则为None。否则,这将是
RequestBody
(您可以.read());此值设置在‘BEFORE_REQUEST_BODY’和‘BEFORE_HANDLER’挂钩之间(假设PROCESS_REQUEST_BODY为True)。
- closed = False¶
调用Close方法后为true,否则为false。
- config = None¶
适用于当前请求的所有配置条目的平面字典。这些条目是从全局配置、应用程序配置(基于request.path_info)和处理程序配置中收集的(确切地说,处理程序配置是如何由对此请求有效的request.Dispatch对象管理的;默认情况下,处理程序配置可以附加到树中request.app.root和最终处理程序之间的任何位置,并向下继承)。
- cookie = {}¶
请参见帮助(Cookie)。
- dispatch = <cherrypy._cpdispatch.Dispatcher object>¶
根据PATH_INFO、其他请求属性和应用程序体系结构查找可调用的“页面处理程序”并收集当前请求的配置的对象。内核尽可能早地调用调度程序,向其传递一个“path_info”参数。
默认调度程序通过将path_info与对象的分层排列(从request.app.root开始)进行匹配来发现页面处理程序。有关详细信息,请参阅帮助(cherrypy.dispatch)。
- error_page = {}¶
响应文件名或可调用}对。
错误代码必须是表示给定HTTP错误代码的int或字符串‘default’,如果找不到与给定数字代码匹配的条目,将使用该字符串。
如果提供了文件名,则文件应包含Python字符串格式模板,并且默认情况下可以接收具有映射键%(Status)s、%(Message)s、%(Traceback)s和%(Version)s的格式值。可以通过覆盖HTTPError.set_response来扩展格式映射集。
如果提供了Callable,则默认情况下将使用关键字参数“status”、“message”、“traceback”和“version”调用它,就像字符串格式模板一样。Callable必须返回一个字符串或字符串的可迭代,它们将被设置为response.body。它还可以覆盖报头或执行任何其他处理。
如果没有给出错误代码条目,并且不存在“默认”条目,则将使用默认模板。
- 类型
{错误代码}的字典
- error_response()¶
no-arg可调用函数,它将在请求处理期间处理意外的未捕获错误。这不用于为响应预期条件而引发的预期异常(如NotFound、HTTPError或HTTPRedirect)(这些异常应通过request.error_page或覆盖HTTPError.set_response进行自定义)。默认情况下,ERROR_RESPONSE使用HTTPError(500)向用户代理返回一般错误响应。
- handler = None¶
CherryPy将调用以生成响应的函数、方法或其他可调用对象。处理程序的发现和它将接收的参数由request.Dispatch对象确定。默认情况下,通过遍历从request.app.root开始的对象树来发现处理程序,然后将所有HTTP参数(来自查询字符串和POST正文)作为关键字参数传递。
- header_list = []¶
(名称、值)元组形式的HTTP请求标头列表。通常,您应该改用request.headers(一个字典)。
- headers = {}¶
包含请求头的类似字典的对象。键是标题名称(采用标题-大小写格式);但是,您可以不区分大小写的方式获取和设置它们。也就是说,标头 ['Content-Type'] 和标头 ['content-type'] 请参考相同的值。值是标头值(根据解码 RFC 2047 (如有需要)。另请参阅:httputil.HeaderMap、httputil.HeaderElement。
- hooks = {'after_error_response': [], 'before_error_response': [], 'before_finalize': [], 'before_handler': [], 'before_request_body': [], 'on_end_request': [], 'on_end_resource': [], 'on_start_resource': []}¶
[胡克,..。] }。每个键都是一个命名钩点字符串,每个值都是一个钩子列表,在此请求期间将在该钩点处调用这些钩子。钩子列表通常尽可能早地填充(主要来自config中指定的工具),但可以随时扩展。另请参见:_cprequest.Hook、_cprequest.HookMap和cherrypy.tools。
- 类型
表单的HookMap(类似字典的对象)
- 类型
{钩点
- is_index = None¶
如果当前请求映射到“index”资源处理程序(如果PATH_INFO以劈开结尾,则为“默认”处理程序),则为True。该值可用于自动将用户代理重定向到添加或删除尾随劈开的“更规范”的url。请参见cherrypy.tools.trading_劈开。
- local = httputil.Host('127.0.0.1', 80, '127.0.0.1')¶
服务器套接字的httputil.Host(IP,端口,主机名)对象。
- login = None¶
当在请求处理期间使用身份验证时,如果失败则设置为“false”,如果成功则设置为“username”值。默认的“None”表示没有进行身份验证。
- method = 'GET'¶
指示要对由Request-URI标识的资源执行的HTTP方法。常用方法包括GET、HEAD、POST、PUT和DELETE。CherryPy允许任何扩展方法;但是,各种HTTP服务器和网关可能会限制允许的方法集。CherryPy应用程序应该限制集合(基于每个URI)。
- methods_with_bodies = ('POST', 'PUT', 'PATCH')¶
CherryPy将自动尝试从rfile读取正文的HTTP方法序列。如果要更改此属性,请在配置(推荐)或“钩点”上修改它
on_start_resource
。
- namespaces = {'error_page': <function error_page_namespace>, 'hooks': <function hooks_namespace>, 'request': <function request_namespace>, 'response': <function response_namespace>, 'tools': <cherrypy._cptools.Toolbox object>}¶
- params = {}¶
组合查询字符串(GET)和请求实体(POST)变量的字典。这分两个阶段进行填充:GET参数添加在“ON_START_RESOURCE”挂接之前,POST参数添加在“BEFORE_REQUEST_BODY”和“BEFORE_HANDLER”挂接之间。
- path_info = '/'¶
请求URI的“相对路径”部分。这与处理此请求的应用程序的script_name(‘装载点’)相关。
- prev = None¶
前一个请求对象(如果有)。除非我们正在处理InternalRedirect,否则该值应为None。
- process_request_body = True¶
如果为True,则自动读取和解析rfile(如果有),并将结果放入request.params或request.body中。
- protocol = (1, 1)¶
与响应中应允许的功能集相对应的HTTP协议版本。如果客户机的请求消息和服务器的HTTP遵从性级别都是HTTP/1.1,则此属性将是元组(1,1)。如果任一为1.0,则此属性将是元组(1,0)。不明确支持较低的HTTP协议版本。
- query_string = ''¶
Request-URI的查询组件,资源要解释的信息字符串。URI的查询部分跟在路径部分之后,并由‘?’分隔。例如,URI‘http://www.cherrypy.org/wiki?a=3&b=4’具有查询组件‘a=3&b=4’。
- query_string_encoding = 'utf8'¶
%祸不单行祸不单行解码后查询字符串参数预期的编码)。如果提供的查询字符串不能用此编码解码,则引发404(因为从技术上讲,它是一个不同的URI)。如果您希望任意编码不出错,请将其设置为“拉丁文-1”;然后您可以重新编码为字节,并在以后重新解码为您喜欢的任何编码。
- remote = httputil.Host('127.0.0.1', 1111, '127.0.0.1')¶
客户端套接字的httputil.Host(IP、端口、主机名)对象。
- request_line = ''¶
从客户端接收的完整请求行。这是由请求方法、URI和协议版本(用空格连接)组成的单个字符串。任何最终的CRLF都将被删除。
- rfile = None¶
如果请求包含实体(正文),则它将在此属性中作为流可用。但是,通常会在‘BEFORE_REQUEST_BODY’挂接和‘BEFORE_HANDLER’挂接之间读取rfile,并将结果字符串放入request.params或request.body属性中。
您可以通过将request.process_request_body设置为false来禁用rfile的自动使用,方法是在所需路径的配置中,或者在‘ON_START_RESOURCE’或‘BEFORE_REQUEST_BODY’挂接中。
警告:几乎在任何情况下,您都不应该在CherryPy的自动机制读取rfile流之后尝试读取它。如果关闭了rfile的自动解析,则应准确读取request.headers中指定的字节数 ['Content-Length'] 。忽略这些警告中的任何一个都可能导致请求线程挂起或损坏下一个(流水线)请求。
- run(method, path, query_string, req_protocol, headers, rfile)[源代码]¶
处理请求。(核心)
方法、路径、查询字符串和请求协议应该直接从请求行中拉出(例如“GET/PATH?KEY=val HTTP/1.0”)。
- 路径
它应该是%XX-不带引号,但QUERY_STRING不应该是。
使用Python 2时,它们必须都是字节字符串,而不是Unicode字符串。
使用Python3时,它们必须都是Unicode字符串,而不是字节字符串,并且最好不要伪装成Unicode的字节x00-xFF。
- 标题
(名称、值)元组的列表。
- rfile
包含HTTP请求实体的类似文件的对象。
run()完成后,返回的对象应该有3个属性:
状态,例如“200 OK”
HEADER_LIST,(名称、值)元组列表
身体,一根可迭代的屈服弦
然后,使用者代码(HTTP服务器)应该访问这些响应属性来构建出站流。
- scheme = 'http'¶
客户端和服务器之间使用的协议。在大多数情况下,这将是‘http’或‘https’。
- script_name = ''¶
正在处理此请求的应用程序的“装入点”。
此属性不能以劈开结尾。如果script_name引用URI的根,则它必须是空字符串(不是“/”)。
- server_protocol = 'HTTP/1.1'¶
HTTP服务器至少有条件地符合的HTTP版本。
- show_mismatched_params = True¶
如果为True,则在PageHandler调用处理期间遇到的不匹配参数将包括在响应正文中。
- show_tracebacks = True¶
如果为True,则在请求处理期间遇到的意外错误将在响应正文中包含回溯。
- stage = None¶
包含请求处理过程中达到的阶段的字符串。这在调试具有挂起请求的活动服务器时很有用。
- throw_errors = False¶
如果为True,Request.run将不会捕获任何错误(HTTPRedirect和HTTPError除外,这两个更恰当的名称是“Exception”,而不是Error)。
- throws = (<class 'KeyboardInterrupt'>, <class 'SystemExit'>, <class 'cherrypy._cperror.InternalRedirect'>)¶
Request.run没有捕获的异常序列。
- toolmaps = {}¶
此请求有效的所有工具箱和工具的嵌套字典,格式为:{Toolbox.nampace:{Tool.name:config dict}}。
- unique_id = None¶
在上生成并存储UUID4的惰性对象
str()
渲染。
- class cherrypy._cprequest.Response[源代码]¶
基类:
object
HTTP响应,包括状态、标头和正文。
- body¶
HTTP响应的正文(实体)。
- cookie = {}¶
请参见帮助(Cookie)。
- header_list = []¶
(名称、值)元组形式的HTTP响应头的列表。通常,您应该改用response.headers(字典)。该属性是从response.headers生成的,只有在Finalize阶段之后才有效。
- headers = {}¶
包含响应头的类似字典的对象。键是标题名称(采用标题-大小写格式);但是,您可以不区分大小写的方式获取和设置它们。也就是说,标头 ['Content-Type'] 和标头 ['content-type'] 请参考相同的值。值是标头值(根据解码 RFC 2047 (如有需要)。
参见
班级
HeaderMap
,HeaderElement
- status = ''¶
HTTP状态代码和原因短语。
- stream = False¶
如果为false,则缓冲响应正文。
- time = None¶
创建时time.time()的值。在HTTP日期中使用。