Python's Archiver

為方便港臺同胞閱覽,Python中國特別推出簡繁體內容轉換功能

zkfarmer 发表于 2008-11-4 14:06

18.4.2 wsgiref.headers – WSGI响应头工具

这个模块提供一个唯一的类,Headers,使用一个类映射接口更方便的WSGI响应头操作。

class Headers(headers)

创建一个类映射对象封装headers,headers必须是PEP 333中描述的头name/value元组的一个列表。任何改变都使新的Headers对象直接更新headers列表。

Headers对象支持典型地映射操作,包含__getitem__,get,__setitem__,setdefault,__delitem__,__contains__和has_key。这些方法中的每一个,关键字都是头名称(区分大小写处理),值是与头名称关联的第一个值。对于一个header,设置一个header删除任何已存在的值,然后在封装的头列表尾部增加一个新值。头的存在顺序通常地被保持,以新头添加到封装的列表尾部。

不同于字典,当你试图获取或删除一个不存在于封装的头列表中的关键字时,Headers对象不会挂起一个错误。获取一个不存在的头仅返回None,删除一个不存在的头什么也不做。

Headers对象也支持keys(),values(),和items()方法。如果有一个多值的头,通过keys()和items()返回的列表包含不止一个相同的关键字。Headers对象的len()与它的items()的长度相同,与封装的头列表长度相同。事实上,items()方法仅返回封装的头列表的副本。

在Headers对象上调用str()返回一个适宜于作为HTTP响应头传输的格式化的字符串。每个头以它的,通过一个冒号和一个空格隔开的值被放置在一行上。每行被终止通过一个回车和换行,字符串以一个空行被终止。

另外的它们的映射接口和格式化功能,Headers对象对于查询和添加多值headers,和用MIME参数添加headers也有下列方法:

get_all(name)

为指定名称的header返回所有值的列表。

返回的列表按照它们出现在原始的头列表或被添加到这个实例中的顺序排序,并且可以包含重复的。任何删除的字段和重插入被一直附加到头列表。如果给定名称没有字段存在,返回一个空列表。

add_header(name, value, **_params)

以通过关键字参数指定的可选MIME参数,添加(可能多值)头。

name是添加的头字段。关键字参数可以被用来为头字段设置MIME参数。每个参数必须是一个字符串或None。参数名称中下划线被转换为破折号,因为破折号在Python标识符中是违法的,但是多数MIME参数名称包含破折号。如果参数值是一个字符串,它以name=”value”的格式被添加给头值参数。如果它是None,仅参数名称被添加。(这用于MIME参数无值)例子用法:

h.add_header('content-disposition', 'attachment', filename='bud.gif')

上面将添加像这样一个头:

Content-Disposition: attachment; filename="bud.gif"



出处PYTHON中国([url]www.okpython.com[/url])关于翻译的任何事情请EMAIL给我zkfarmer([email]zkfarmer@gmail.com[/email]),更多文档在我的站点([url]www.zkfarmer.org[/url])。请参阅英文官方文档。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.