cherrypy.lib.httputil模块

HTTP库函数。

此模块包含用于构建HTTP应用程序框架的函数:任何一个,而不仅仅是名称以“ch”开头的函数。;)如果您引用了内部某个流行框架中的任何模块, this 模组,富曼竹会亲自用拇指把你挂起来,然后把你交给公众鞭打。

class cherrypy.lib.httputil.AcceptElement(value, params=None)[源代码]

基类:cherrypy.lib.httputil.HeaderElement

来自accept*头元素列表的元素(带参数)。

AcceptElement对象是可比较的;越首选的对象将“小于”越不首选的对象。因此,它们也可以排序;如果对AcceptElement对象列表进行排序,则它们将按优先级顺序列出;最优先的值将是第一个。是的,本来应该是相反的,但现在修好已经太迟了。

classmethod from_str(elementstr)[源代码]

从“token;key=val”形式的字符串构造实例。

property qvalue

该值的qvalue或priority。

class cherrypy.lib.httputil.CaseInsensitiveDict(*args, **kargs)[源代码]

基类:jaraco.collections.KeyTransformingDict

不区分大小写的dict子类。

每个键在进入标题大小写时都会更改。

static transform_key(key)[源代码]
class cherrypy.lib.httputil.HeaderElement(value, params=None)[源代码]

基类:object

HTTP头元素列表中的元素(带有参数)。

classmethod from_str(elementstr)[源代码]

从“token;key=val”形式的字符串构造实例。

static parse(elementstr)[源代码]

将“token;key=val”转换为(“token”,“key”:“val”)。

class cherrypy.lib.httputil.HeaderMap(*args, **kargs)[源代码]

基类:cherrypy.lib.httputil.CaseInsensitiveDict

HTTP请求和响应头的dict子类。

每个键在条目中都更改为str(key).title()。这允许头不区分大小写并避免重复。

值是头值(根据 RFC 2047 如有必要)。

elements(key)[源代码]

返回给定头的已排序的headerRelations列表。

classmethod encode(v)[源代码]

返回为HTTP输出编码的给定头名称或值。

classmethod encode_header_item(item)[源代码]
classmethod encode_header_items(header_items)[源代码]

准备名称、值元组的序列,使其形成一种适合于在网络上传输HTTP的形式。

encodings = ['ISO-8859-1']
output()[源代码]

将self转换为(name,value)元组的列表。

protocol = (1, 1)
use_rfc_2047 = True
values(key)[源代码]

返回给定头的headerElement.value的排序列表。

class cherrypy.lib.httputil.Host(ip, port, name=None)[源代码]

基类:object

互联网地址。

名称

应该是客户端的主机名。如果不可用(因为没有执行DNS查找),则应使用IP地址。

ip = '0.0.0.0'
name = 'unknown.tld'
port = 80
cherrypy.lib.httputil._parse_qs(qs, keep_blank_values=0, strict_parsing=0, encoding='utf-8')[源代码]

解析作为字符串参数给定的查询。

参数:

QS:要解析的URL编码查询字符串

KEEP_BLACK_VALUES:指示空值是否为

URL编码的查询应被视为空字符串。TRUE值表示应将空白保留为空白字符串。默认的FALSE值表示要忽略空白值,并将其视为不包含空白值。

STRICT_PARSING:指示如何处理解析错误的标志。如果

False(默认值),则会自动忽略错误。如果为true,则错误引发ValueError异常。

返回一个字典,正如G-d所希望的那样。

cherrypy.lib.httputil.decode_TEXT(value)[源代码]

译码 RFC 2047 TEXT

>>> decode_TEXT("=?utf-8?q?f=C3=BCr?=") == b'f\xfcr'.decode('latin-1')
True
cherrypy.lib.httputil.decode_TEXT_maybe(value)[源代码]

解码文本,但仅当“=?”出现在里面。

cherrypy.lib.httputil.get_ranges(headervalue, content_length)[源代码]

从范围标题返回(开始、停止)索引列表,或不返回。

每个(开始、停止)元组将由两个ints组成,这些ints适用于切片操作。也就是说,头“range:bytes=3-6”(如果对python字符串应用)正在请求资源 [3:7] .此函数将返回列表 [(3,7)] .

如果此函数返回空列表,则应返回HTTP 416。

cherrypy.lib.httputil.header_elements(fieldname, fieldvalue)[源代码]

从逗号分隔的头字符串返回已排序的headerElement列表。

cherrypy.lib.httputil.parse_query_string(query_string, keep_blank_values=True, encoding='utf-8')[源代码]

从查询字符串生成参数字典。

提供的查询中的重复键/值对字符串将作为'键'返回: [价值1,价值2,…] }.单个键/值将作为字符串返回:键“:”值“”。

cherrypy.lib.httputil.protocol_from_http(protocol_str)[源代码]

从给定的'http/x.y'字符串返回协议元组。

cherrypy.lib.httputil.urljoin(*atoms)[源代码]

返回给定路径 * 原子,加入到一个URL中。

这将正确地将脚本名称和路径信息连接到原始URL中,即使其中一个Atom为空。

cherrypy.lib.httputil.urljoin_bytes(*atoms)[源代码]

返回给定路径 *atoms ,加入一个URL。

这将正确地将脚本名称和路径信息连接到原始URL中,即使其中一个Atom为空。

cherrypy.lib.httputil.valid_status(status)[源代码]

返回合法的HTTP状态代码、原因短语和消息。

status arg必须是int、以int开头的str或从中开始的常量 http.client STDLIB模块。

如果状态没有提供原因短语,将提供默认原因短语。

>>> import http.client
>>> from http.server import BaseHTTPRequestHandler
>>> valid_status(http.client.ACCEPTED) == (
...     int(http.client.ACCEPTED),
... ) + BaseHTTPRequestHandler.responses[http.client.ACCEPTED]
True