headers) |
Headers オブジェクトは典型的なマッピング操作をサポートし、これには __getitem__、get、__setitem__、 setdefault、__delitem__、__contains__ と has_key を含みます。これらメソッドのそれぞれにおいて、キーは ヘッダ名で(大文字小文字は区別しません)、値はそのヘッダ名に関連づけられた 最初の値です。ヘッダを設定すると既存のヘッダ値は削除され、ラップされた ヘッダのリストの末尾に新しい値が加えられます。既存のヘッダの順番は 一般的に整えられていて、ラップされたリストの最後に新しいヘッダが追加されます。
辞書とは違って、Headers オブジェクトはラップされたヘッダリストに
存在しないキーを取得または削除しようとした場合にもエラーを発生しません。
単に、存在しないヘッダの取得は None
を返し、存在しないヘッダの削除は
何もしません。
Headers オブジェクトは keys()、values()、
items() メソッドもサポートします。keys() と items() で
返されるリストは、同じキーを一回以上含むことがあり、これは複数の値を持つヘッダの場合です。
Header オブジェクトの len()
は、その items() の長さと同じであり、
ラップされたヘッダリストの長さと同じです。事実、items() メソッドは
単にラップされたヘッダリストのコピーを返しているだけです。
Headers オブジェクトに対して str()
を呼ぶと、HTTP レスポンスヘッダとして
送信するのに適した形に整形された文字列を返します。それぞれのヘッダはコロンとスペースで
区切られた値と共に一列に並んでいます。
それぞれの行はキャリッジリターンとラインフィードで終了し、文字列は空行で終了しています。
これらのマッピングインターフェースと整形機能に加えて、Headers オブジェクトは 複数の値を持つヘッダの取得と追加、MIME パラメタでヘッダを追加するための 以下のようなメソッド群も持っています:
name) |
返されるリストは、元々のヘッダリストに現れる順、またはこのインスタンスに 追加された順に並んでいて、複製を含む場合があります。削除されて加えられた フィールドは全てヘッダリストの末尾に付きます。ある名前のフィールドが何もなければ、 空のリストが返ります。
name, value, **_params) |
name は追加するヘッダフィールドです。このヘッダフィールドに MIME パラメタを
設定するためにキーワード引数を使うことができます。それぞれのパラメタは文字列か None
で
なければいけません。パラメタ中のアンダースコアはダッシュに変換されます、これはダッシュが
Python の識別子としては不正なのですが、多くの MIME パラメタはダッシュを含むためです。
パラメタ値が文字列の場合、これはヘッダ値のパラメタに name="value"
の形で追加されます。
これがもし None
の場合、パラメタ名だけが追加されます。(これは値なしの MIME パラメタの
場合に使われます。)使い方の例は:
h.add_header('content-disposition', 'attachment', filename='bud.gif')
上記はこのようなヘッダを追加します:
Content-Disposition: attachment; filename="bud.gif"
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。