django ### wsgiref.headers   这个模块提供一个Headers的类,用于方便的使用一个mapping-like的接口来操作WSGI头的响应。 * __class__ wsgiref.headers.__Headers(*headers*)__ 创建一个mapping-like的对象来装饰headers,这个对象必须是由PEP 333中定义的header的name/value元组构成的list。任何更改将直接更新新的Headers对象。 Headers对象支持典型的map操作有```__getitem()__```、```__get()__```、```__setitem()__```、```__setdefault()__```、```__delitem()__```、```__contains()__```、```__haskey()__```等。 不管哪种操作,key都是header的name,value是name接下来的第一个值。设置一个header将会删除任何已存在的值,然后追加一个新的值到装饰header的list的末尾。 与dict不同的是,即使你试图get或删除一个不存在的key,Headers对象也不会抛出异常,取不存在的key会返回一个None,删除不存在的key则是什么也不做。 Headers对象也同样支持```keys()```、```values()```和```items()```方法。如果有一键多值的Header,可以返回多个list并且keys和items可以包含同一个key多次。对一个Headers对象使用```len()```方法跟len它的items有相同的效果,返回的是装饰Headers的list的长度。```items()```方法指挥返回这个装饰Header的list的副本。 对Headers对象使用```str()```方法将会得到一个格式化的字符串,来适配HTTP headers响应的传送。每个header都和它的值置于一行,以冒号和一个空格相隔。每行都终止于“\r\n”,并且这个字符串终止于一个空行。 除上述之外,Headers对象还支持两种方法来查找和追加一键多值的header、给header添加MIME参数。 * __get_all(*name*)__ 返回一个包含所有这个header中的name/value的list。 返回的list的顺序是根据他们在原header中出现的先后、添加到实例的先后来决定的,而且可能会重复。任何的字段删除并重新插入,都将追加到header list的末尾。如果没有给定的name没有存在的字段,就返回一个空的list。 * __add_header(*name, value, **params*)__ 添加一个header,并且可能是一键多值的header,可以通过params中特定的key给此方法传入MIME参数。 name是要添加的字段,keyword参数可以给这个字段添加MIME参数。每个参数必须为字符串或者None。“_”将会被转化成“-”,因为“-”在Python中是不合法的标识符,但很多MIME参数都包含它。如果参数的值是一个字符串,就会被追加到header的值中,比如```name="value"```。如果是None,就只有name会被添加,这种情况用在无值的MIME参数中。 生产实例: h.add_header('content-disposition', 'attachment', filename='bud.gif') 将会回复: Content-Disposition: attachment; filename="bud.gif"