{"title":"リクエストとレスポンスのオブジェクト","version":"5.2","locale":"ja","docname":"ref/request-response","url":"/ja/5.2/ref/request-response/","canonical":"https://djangodocs.dev/ja/5.2/ref/request-response/","summary":"簡単な概要 Link to this heading # Django は、システムを通じてステータスを渡すために、リクエストとレスポンスのオブジェクトを使います。 あるページがリクエストされたとき、Django はリクエストに関するメタデータを含んだ HttpRequest オブジェクトを生成します。それから Django…","html":"<span id=\"request-and-response-objects\"></span><h1>リクエストとレスポンスのオブジェクト<a class=\"heading-anchor\" href=\"#module-django.http\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"quick-overview\">\n<h2>簡単な概要<a class=\"heading-anchor\" href=\"#quick-overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django は、システムを通じてステータスを渡すために、リクエストとレスポンスのオブジェクトを使います。</p>\n<p>あるページがリクエストされたとき、Django はリクエストに関するメタデータを含んだ <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> オブジェクトを生成します。それから Django は <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> をビュー関数の最初の関数として渡し、適切なビューを読み込みます。あらゆるビューは <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> オブジェクトを返す必要があります。</p>\n<p>このドキュメントでは、<a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> と <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> オブジェクトの API を説明しています。これは <a class=\"reference internal\" href=\"#module-django.http\" title=\"django.http: Classes dealing with HTTP requests and responses.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.http</span></code></a> モジュールにて定義されています。</p>\n</section>\n<section id=\"httprequest-objects\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> オブジェクト<a class=\"heading-anchor\" href=\"#httprequest-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpRequest</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<section id=\"attributes\">\n<span id=\"httprequest-attributes\"></span><h3>属性<a class=\"heading-anchor\" href=\"#attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>特に記載がない限り、全ての属性は読み取り専用だと考えてください。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.scheme\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">scheme</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.scheme\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストのスキームを表す文字列です (通常は <code class=\"docutils literal notranslate\"><span class=\"pre\">http</span></code> か <code class=\"docutils literal notranslate\"><span class=\"pre\">https</span></code>)。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.body\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">body</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.body\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>生の HTTP リクエストボディをバイト文字列として。これは、従来の HTML フォームとは異なる方法でデータを処理するのに便利です：バイナリイメージ、XML ペイロードなど。従来のフォームデータを処理する場合は、<a class=\"reference internal\" href=\"#django.http.HttpRequest.POST\" title=\"django.http.HttpRequest.POST\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpRequest.POST</span></code></a> を使用してください。</p>\n<p><a class=\"reference internal\" href=\"#django.http.HttpRequest.read\" title=\"django.http.HttpRequest.read\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">HttpRequest.read()</span></code></a> や <a class=\"reference internal\" href=\"#django.http.HttpRequest.readline\" title=\"django.http.HttpRequest.readline\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">HttpRequest.readline()</span></code></a> を用いて、ファイルのようなインタフェースから <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> を読み取ることもできます。これらの I/O ストリームメソッドを用いてリクエストを読み取った <em>後に</em> <code class=\"docutils literal notranslate\"><span class=\"pre\">body</span></code> 属性にアクセスすると、<code class=\"docutils literal notranslate\"><span class=\"pre\">RawPostDataException</span></code> が発生します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.path\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">path</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.path\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>要求されたページへのフルパスを表す文字列であり、scheme、ドメイン、クエリ文字列は含みません。</p>\n<p>例: <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/music/bands/the_beatles/&quot;</span></code></p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.path_info\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">path_info</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.path_info\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一部のWebサーバー構成では、ホスト名の後のURLがスクリプトプレフィックス部分とパス情報部分に分割されます。<code class=\"docutils literal notranslate\"><span class=\"pre\">path_info</span></code> 属性は、使用されるWebサーバーに関わらず常にパス情報部分を含んでいます。これを <a class=\"reference internal\" href=\"#django.http.HttpRequest.path\" title=\"django.http.HttpRequest.path\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">path</span></code></a> の代わりに使用することで、テストサーバーとデプロイメントサーバー間でコードを移動させやすくなります。</p>\n<p>たとえば、アプリケーションの <code class=\"docutils literal notranslate\"><span class=\"pre\">WSGIScriptAlias</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/minfo&quot;</span></code> に設定されている場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/minfo/music/bands/the_beatles/&quot;</span></code> である一方、<code class=\"docutils literal notranslate\"><span class=\"pre\">path_info</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/music/bands/the_beatles/&quot;</span></code> となる可能性があります。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.method\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">method</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.method\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストで使用された HTTP メソッドを表す文字列です。この値は常に大文字となることが保証されています。たとえば、次のようになります。</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">method</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;GET&quot;</span><span class=\"p\">:</span>\n    <span class=\"n\">do_something</span><span class=\"p\">()</span>\n<span class=\"k\">elif</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">method</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;POST&quot;</span><span class=\"p\">:</span>\n    <span class=\"n\">do_something_else</span><span class=\"p\">()</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.encoding\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">encoding</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.encoding\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>フォーム提出データをデコードする際に使用されている現在のエンコーディングを表す文字列（または <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> で、これは <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a> 設定が使用されることを意味します）。この属性に書き込むことで、フォームデータにアクセスする際に使用されるエンコーディングを変更できます。その後の属性アクセス（<a class=\"reference internal\" href=\"#django.http.HttpRequest.GET\" title=\"django.http.HttpRequest.GET\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">GET</span></code></a> や <a class=\"reference internal\" href=\"#django.http.HttpRequest.POST\" title=\"django.http.HttpRequest.POST\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">POST</span></code></a> からの読み取りなど）は、新しい <code class=\"docutils literal notranslate\"><span class=\"pre\">encoding</span></code> 値を使用します。フォームデータが <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a> エンコーディングでないことがわかっている場合に便利です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.content_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">content_type</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.content_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストの MIME タイプを表す文字列です。<code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_TYPE</span></code> から識別されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.content_params\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">content_params</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.content_params\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_TYPE</span></code> ヘッダに含まれる、キーと値のパラーメータのディクショナリです。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.GET\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">GET</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.GET\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>渡された HTTP GET パラメータを含む、ディクショナリライクのオブジェクトです。後述の <a class=\"reference internal\" href=\"#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code></a> のドキュメントを参照してください。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.POST\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">POST</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.POST\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストにフォームデータが含まれている場合に、すべての与えられた HTTP POST パラメータを含む辞書のようなオブジェクト。以下の <a class=\"reference internal\" href=\"#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code></a> ドキュメントを参照してください。リクエストにポストされた生のデータや非フォームデータにアクセスする必要がある場合は、代わりに <a class=\"reference internal\" href=\"#django.http.HttpRequest.body\" title=\"django.http.HttpRequest.body\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpRequest.body</span></code></a> 属性を通じてアクセスしてください。</p>\n<p>POST メソッドでフォームデータが含まれていない場合に、空の <code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code> ディクショナリを備えたリクエストが発生する可能性があります。そのため、POST メソッドの使用を確認するために <code class=\"docutils literal notranslate\"><span class=\"pre\">if</span> <span class=\"pre\">request.POST</span></code> を使用すべきではありません。代わりに、 <code class=\"docutils literal notranslate\"><span class=\"pre\">if</span> <span class=\"pre\">request.method</span> <span class=\"pre\">==</span> <span class=\"pre\">&quot;POST&quot;</span></code> を使用してください (<a class=\"reference internal\" href=\"#django.http.HttpRequest.method\" title=\"django.http.HttpRequest.method\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpRequest.method</span></code></a> を参照)。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">POST</span></code> には file-upload の情報が含まれ <em>ません</em> 。詳しくは <a class=\"reference internal\" href=\"#django.http.HttpRequest.FILES\" title=\"django.http.HttpRequest.FILES\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">FILES</span></code></a> を参照してください。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.COOKIES\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">COOKIES</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.COOKIES\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>すべてのクッキーが格納されたディクショナリです。キーと値は文字列です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.FILES\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">FILES</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.FILES\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">FILES</span></code> は、アップロードされた全てのファイルを含む辞書型のオブジェクトです。<code class=\"docutils literal notranslate\"><span class=\"pre\">FILES</span></code> の各キーは <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;input</span> <span class=\"pre\">type=&quot;file&quot;</span> <span class=\"pre\">name=&quot;&quot;&gt;</span></code> の <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> から成ります。<code class=\"docutils literal notranslate\"><span class=\"pre\">FILES</span></code> の各値は <a class=\"reference internal\" href=\"/ja/5.2/ref/files/uploads/#django.core.files.uploadedfile.UploadedFile\" title=\"django.core.files.uploadedfile.UploadedFile\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UploadedFile</span></code></a> です。</p>\n<p>詳細については、<a class=\"reference internal\" href=\"/ja/5.2/topics/files/\"><span class=\"doc\">ファイルの管理</span></a> を参照してください。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">FILES</span></code> には、リクエストメソッドが POST で、リクエストに投稿した <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;form&gt;</span></code> に <code class=\"docutils literal notranslate\"><span class=\"pre\">enctype=&quot;multipart/form-data&quot;</span></code> が設定されていた場合にのみデータが含まれます。それ以外の場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">FILES</span></code> は空の辞書のようなオブジェクトになります。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.META\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">META</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.META\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>利用できるすべての HTTP ヘッダーが格納されたディクショナリです。利用可能なヘッダーはクライアントとサーバーによって異なりますが、以下に例を示します。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_LENGTH</span></code> -- リクエスト本文の (文字列としての) 長さです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_TYPE</span></code> -- リクエスト本文の MIME タイプです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_ACCEPT</span></code> -- レスポンスに対して受け入れ可能なコンテンツのタイプです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_ACCEPT_ENCODING</span></code> -- レスポンスに対して受け入れ可能なエンコーディングです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_ACCEPT_LANGUAGE</span></code> -- レスポンスに対して受け入れ可能な言語です。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_HOST</span></code> -- クライアントによって送信された HTTP Host ヘッダです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_REFERER</span></code> -- (存在する場合) リファラページです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_USER_AGENT</span></code> -- クライアントのユーザエージェント文字列です。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">QUERY_STRING</span></code> -- クエリ文字列で、単一の (未解析の) 文字列です。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_ADDR</span></code> -- クライアントの IP アドレスです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_HOST</span></code> -- クライアントのホスト名です。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">REMOTE_USER</span></code> -- ウェブサーバーによって認証されたユーザー(もしあれば)。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">REQUEST_METHOD</span></code> -- <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;GET&quot;</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;POST&quot;</span></code> といったです。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_NAME</span></code> -- サーバのホスト名です。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_PORT</span></code> -- (文字列としての) サーバのポートです。</p></li>\n</ul>\n<p>上記の <code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_LENGTH</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_TYPE</span></code> を除き、リクエストの HTTP ヘッダーは、すべての文字を大文字に変換し、ハイフンをアンダースコアに置き換え、名前に <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_</span></code> プレフィックスを追加することで <code class=\"docutils literal notranslate\"><span class=\"pre\">META</span></code> キーに変換されます。たとえば、<code class=\"docutils literal notranslate\"><span class=\"pre\">X-Bender</span></code> というヘッダーは <code class=\"docutils literal notranslate\"><span class=\"pre\">META</span></code> キー <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_X_BENDER</span></code> にマッピングされます。</p>\n<p><a class=\"reference internal\" href=\"/ja/5.2/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> では、名前にアンダースコアを含むヘッダーはすべて削除されるため、<code class=\"docutils literal notranslate\"><span class=\"pre\">META</span></code> にそれらが表示されません。これにより、WSGI 環境変数内のアンダースコアとダッシュの曖昧さに基づくヘッダー・スプーフィングが防がれます。この動作は、Nginx や Apache 2.4+ のようなウェブサーバーと一致しています。</p>\n<p><a class=\"reference internal\" href=\"#django.http.HttpRequest.headers\" title=\"django.http.HttpRequest.headers\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpRequest.headers</span></code></a> は <code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_LENGTH</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">CONTENT_TYPE</span></code> を含む、全てのHTTPプレフィックス付きヘッダーにアクセスするより簡単な方法です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.headers\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">headers</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストからHTTPプリフィックスヘッダー全体 (<code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code> を含む) にアクセスを提供する、大文字小文字を区別しない辞書風オブジェクトです。</p>\n<p>各ヘッダーの名前は、表示される際にタイトルケース (例: <code class=\"docutils literal notranslate\"><span class=\"pre\">User-Agent</span></code>) でスタイリズされます。ヘッダーは大文字小文字を区別せずにアクセスできます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span>\n<span class=\"go\">{&#39;User-Agent&#39;: &#39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6&#39;, ...}</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"s2\">&quot;User-Agent&quot;</span> <span class=\"ow\">in</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"s2\">&quot;user-agent&quot;</span> <span class=\"ow\">in</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span>\n<span class=\"go\">True</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span><span class=\"p\">[</span><span class=\"s2\">&quot;User-Agent&quot;</span><span class=\"p\">]</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span><span class=\"p\">[</span><span class=\"s2\">&quot;user-agent&quot;</span><span class=\"p\">]</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s2\">&quot;User-Agent&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">headers</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"s2\">&quot;user-agent&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n</code></pre></div>\n<p>たとえば Django テンプレートでの使用において、ヘッダーはハイフンの代わりにアンダースコアを使用してもルックアップできます。</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{{</span> <span class=\"nv\">request.headers.user_agent</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.resolver_match\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">resolver_match</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.resolver_match\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>解決されたURLを表す <a class=\"reference internal\" href=\"/ja/5.2/ref/urlresolvers/#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ResolverMatch</span></code></a> のインスタンスです。この属性は、URLの解決が行われた後にのみ設定されます。つまり、全てのビューで利用可能ですが、URLの解決が行われる前に実行されるミドルウェアでは利用できません (<a class=\"reference internal\" href=\"/ja/5.2/topics/http/middleware/#process_view\" title=\"process_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">process_view()</span></code></a> では使用できます)。</p>\n</dd></dl>\n\n</section>\n<section id=\"attributes-set-by-application-code\">\n<h3>アプリケーションコードがセットする属性<a class=\"heading-anchor\" href=\"#attributes-set-by-application-code\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django はこれらの属性を自分で設定することはありませんが、アプリケーション側で設定された場合にはその値を利用します。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.current_app\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">current_app</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.current_app\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"/ja/5.2/ref/templates/builtins/#std-templatetag-url\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">url</span></code></a> テンプレートタグは、その値を <a class=\"reference internal\" href=\"/ja/5.2/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">reverse()</span></code></a> の <code class=\"docutils literal notranslate\"><span class=\"pre\">current_app</span></code> 引数に使います。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.urlconf\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">urlconf</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.urlconf\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>この値は、現在のリクエストに対する root URLconf として使用され、設定の <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ROOT_URLCONF</span></code></a> を上書きします。詳しくは <a class=\"reference internal\" href=\"/ja/5.2/topics/http/urls/#how-django-processes-a-request\"><span class=\"std std-ref\">Django のリクエスト処理</span></a> を参照してください。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">urlconf</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> に設定することで、それまでにミドルウェアで行われた変更を取り消し、元の <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ROOT_URLCONF</span></code></a> を使用するようにできます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.exception_reporter_filter\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">exception_reporter_filter</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.exception_reporter_filter\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これは、現在のリクエストに対して <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_EXCEPTION_REPORTER_FILTER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_EXCEPTION_REPORTER_FILTER</span></code></a> の代わりに使用されます。詳細については、 <a class=\"reference internal\" href=\"/ja/5.2/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">カスタムエラーレポート</span></a> を参照してください。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.exception_reporter_class\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">exception_reporter_class</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.exception_reporter_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これは、現在のリクエストに対して <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_EXCEPTION_REPORTER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_EXCEPTION_REPORTER</span></code></a> の代わりに使用されます。詳細については <a class=\"reference internal\" href=\"/ja/5.2/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">カスタムエラーレポート</span></a> を参照してください。</p>\n</dd></dl>\n\n</section>\n<section id=\"attributes-set-by-middleware\">\n<h3>ミドルウェアが設定する属性<a class=\"heading-anchor\" href=\"#attributes-set-by-middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django の contrib アプリなどのミドルウェアの一部は、リクエストに属性を設定します。もし、リクエストに属性が設定されていない場合は、<a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> リスト中に適切なミドルウェアが含まれているかを確認してください。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.session\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">session</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.session\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code></a> は、現在のセッションを表す、読み書き可能でディクショナリライクなオブジェクトを設定します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.site\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">site</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.site\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#django.contrib.sites.middleware.CurrentSiteMiddleware\" title=\"django.contrib.sites.middleware.CurrentSiteMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CurrentSiteMiddleware</span></code></a> は、現在のサイトを表す <a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/sites/#django.contrib.sites.models.Site\" title=\"django.contrib.sites.models.Site\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Site</span></code></a> または <a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/sites/#django.contrib.sites.requests.RequestSite\" title=\"django.contrib.sites.requests.RequestSite\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RequestSite</span></code></a> のインスタンスを、<a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/sites/#django.contrib.sites.shortcuts.get_current_site\" title=\"django.contrib.sites.shortcuts.get_current_site\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">get_current_site()</span></code></a> の返り値で設定します。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.user\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">user</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.user\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationMiddleware</span></code></a> から: 現在ログインしているユーザーを表す <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code></a> のインスタンスです。ユーザーが現在ログインしていない場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code> は <a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/auth/#django.contrib.auth.models.AnonymousUser\" title=\"django.contrib.auth.models.AnonymousUser\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AnonymousUser</span></code></a> のインスタンスに設定されます。 <a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/auth/#django.contrib.auth.models.User.is_authenticated\" title=\"django.contrib.auth.models.User.is_authenticated\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_authenticated</span></code></a> を使用して、それらを区別できます。例えば、こうです:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">if</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">user</span><span class=\"o\">.</span><span class=\"n\">is_authenticated</span><span class=\"p\">:</span>\n    <span class=\"o\">...</span>  <span class=\"c1\"># Do something for logged-in users.</span>\n<span class=\"k\">else</span><span class=\"p\">:</span>\n    <span class=\"o\">...</span>  <span class=\"c1\"># Do something for anonymous users.</span>\n</code></pre></div>\n<p><a class=\"reference internal\" href=\"#django.http.HttpRequest.auser\" title=\"django.http.HttpRequest.auser\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">auser()</span></code></a> メソッドは同じ機能を提供しますが、非同期コンテキストから使用できます。</p>\n</dd></dl>\n\n</section>\n<section id=\"methods\">\n<h3>メソッド<a class=\"heading-anchor\" href=\"#methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.auser\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">auser</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.auser\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationMiddleware</span></code></a> から: コルーチン。現在ログインしているユーザーを表す <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">AUTH_USER_MODEL</span></code></a> のインスタンスを返します。もしユーザーが現在ログインしていない場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">auser</span></code> は <a class=\"reference internal\" href=\"/ja/5.2/ref/contrib/auth/#django.contrib.auth.models.AnonymousUser\" title=\"django.contrib.auth.models.AnonymousUser\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AnonymousUser</span></code></a> のインスタンスを返します。これは <a class=\"reference internal\" href=\"#django.http.HttpRequest.user\" title=\"django.http.HttpRequest.user\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">user</span></code></a> 属性に似ていますが、非同期コンテキストでも機能します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_host\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_host</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_host\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストの発信元ホストを返します。この情報は、順番に <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_X_FORWARDED_HOST</span></code> (もし <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-USE_X_FORWARDED_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_HOST</span></code></a> が有効な場合) および <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_HOST</span></code> ヘッダーから取得されます。これらが値を提供しない場合、メソッドは <code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_NAME</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_PORT</span></code> の組み合わせを使用します。詳細は <span class=\"target\" id=\"index-24\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/\"><strong>PEP 3333</strong></a> で説明されています。</p>\n<p>例: <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;127.0.0.1:8000&quot;</span></code></p>\n<p>ホストが <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a> にないか、ドメイン名が <span class=\"target\" id=\"index-25\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc1034.html\"><strong>RFC 1034</strong></a>/<span class=\"target\" id=\"index-26\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc1035.html\"><strong>1035</strong></a> に従っていない場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.exceptions.DisallowedHost</span></code> を発生させます。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p><a class=\"reference internal\" href=\"#django.http.HttpRequest.get_host\" title=\"django.http.HttpRequest.get_host\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_host()</span></code></a> メソッドは、ホストが複数のプロキシの背後にある場合に失敗します。一つの解決策として、以下の例に示すように、プロキシのヘッダーを書き換えるためのミドルウェアを使用できます:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">MultipleProxyMiddleware</span><span class=\"p\">:</span>\n    <span class=\"n\">FORWARDED_FOR_FIELDS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"s2\">&quot;HTTP_X_FORWARDED_FOR&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;HTTP_X_FORWARDED_HOST&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;HTTP_X_FORWARDED_SERVER&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">get_response</span><span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_response</span> <span class=\"o\">=</span> <span class=\"n\">get_response</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"fm\">__call__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"n\">request</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">        Rewrites the proxy headers so that only the most</span>\n<span class=\"sd\">        recent proxy is used.</span>\n<span class=\"sd\">        &quot;&quot;&quot;</span>\n        <span class=\"k\">for</span> <span class=\"n\">field</span> <span class=\"ow\">in</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">FORWARDED_FOR_FIELDS</span><span class=\"p\">:</span>\n            <span class=\"k\">if</span> <span class=\"n\">field</span> <span class=\"ow\">in</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">META</span><span class=\"p\">:</span>\n                <span class=\"k\">if</span> <span class=\"s2\">&quot;,&quot;</span> <span class=\"ow\">in</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">META</span><span class=\"p\">[</span><span class=\"n\">field</span><span class=\"p\">]:</span>\n                    <span class=\"n\">parts</span> <span class=\"o\">=</span> <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">META</span><span class=\"p\">[</span><span class=\"n\">field</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">split</span><span class=\"p\">(</span><span class=\"s2\">&quot;,&quot;</span><span class=\"p\">)</span>\n                    <span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">META</span><span class=\"p\">[</span><span class=\"n\">field</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">parts</span><span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">strip</span><span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">get_response</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>このミドルウェアは、<a class=\"reference internal\" href=\"#django.http.HttpRequest.get_host\" title=\"django.http.HttpRequest.get_host\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_host()</span></code></a> の値に依存する他のミドルウェアよりも前に配置されるべきです (例えば、 <a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code></a> や <a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#django.middleware.csrf.CsrfViewMiddleware\" title=\"django.middleware.csrf.CsrfViewMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CsrfViewMiddleware</span></code></a> など)。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_port\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_port</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_port\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストの元となったポートを、 <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTP_X_FORWARDED_PORT</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">SERVER_PORT</span></code> の <code class=\"docutils literal notranslate\"><span class=\"pre\">META</span></code> 変数から、その順に使用して情報を取得し返します (ただし、 <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-USE_X_FORWARDED_PORT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_X_FORWARDED_PORT</span></code></a> が有効になっている場合)。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_full_path\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_full_path</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_full_path\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>必要に応じて、 <code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> にクエリ文字列を追加して返します。</p>\n<p>例: <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/music/bands/the_beatles/?print=true&quot;</span></code></p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_full_path_info\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_full_path_info</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_full_path_info\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpRequest.get_full_path\" title=\"django.http.HttpRequest.get_full_path\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_full_path()</span></code></a> と似ていますが、 <a class=\"reference internal\" href=\"#django.http.HttpRequest.path\" title=\"django.http.HttpRequest.path\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">path</span></code></a> の代わりに <a class=\"reference internal\" href=\"#django.http.HttpRequest.path_info\" title=\"django.http.HttpRequest.path_info\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">path_info</span></code></a> を使用します。</p>\n<p>例: <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;/minfo/music/bands/the_beatles/?print=true&quot;</span></code></p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.build_absolute_uri\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">build_absolute_uri</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">location</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.build_absolute_uri\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">location</span></code> の絶対URI形式を返します。もし location が指定されていない場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">request.get_full_path()</span></code> が location に設定されます。</p>\n<p>もし場所がすでに絶対 URI である場合、それは変更されません。そうでない場合、このリクエストで利用可能なサーバ変数を使用して絶対 URI が構築されます。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">build_absolute_uri</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;https://example.com/music/bands/the_beatles/?print=true&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">build_absolute_uri</span><span class=\"p\">(</span><span class=\"s2\">&quot;/bands/&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;https://example.com/bands/&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">build_absolute_uri</span><span class=\"p\">(</span><span class=\"s2\">&quot;https://example2.com/bands/&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;https://example2.com/bands/&#39;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>同一サイト上でHTTPとHTTPSを混在させることは推奨されません。そのため、<a class=\"reference internal\" href=\"#django.http.HttpRequest.build_absolute_uri\" title=\"django.http.HttpRequest.build_absolute_uri\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">build_absolute_uri()</span></code></a> は常に、現在のリクエストと同じスキームを持つ絶対URIを生成します。ユーザーをHTTPSにリダイレクトする必要がある場合は、WebサーバーにすべてのHTTPトラフィックをHTTPSにリダイレクトさせるのが最善です。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_signed_cookie\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_signed_cookie</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">RAISE_ERROR</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">salt</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_age</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_signed_cookie\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>署名付きクッキーの値を返します。署名が無効である場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">django.core.signing.BadSignature</span></code> 例外が発生します。<code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> 引数を提供した場合、例外は抑制され、代わりにそのデフォルト値が返されます。</p>\n<p>The optional <code class=\"docutils literal notranslate\"><span class=\"pre\">salt</span></code> argument can be used to put the cookie into a\nseparate signature namespace. If supplied, the <code class=\"docutils literal notranslate\"><span class=\"pre\">max_age</span></code> argument will\nbe checked against the signed timestamp attached to the cookie value to\nensure the cookie is not older than <code class=\"docutils literal notranslate\"><span class=\"pre\">max_age</span></code> seconds.</p>\n<p>Cookies signed by older Django versions are accepted by default for\nbackwards compatibility. Set <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-SIGNED_COOKIE_LEGACY_SALT_FALLBACK\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SIGNED_COOKIE_LEGACY_SALT_FALLBACK</span></code></a>\nto <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> to reject them.</p>\n<p>例:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;Tony&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"n\">salt</span><span class=\"o\">=</span><span class=\"s2\">&quot;name-salt&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;Tony&#39; # assuming cookie was set using the same salt</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;nonexistent-cookie&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">KeyError: &#39;nonexistent-cookie&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;nonexistent-cookie&quot;</span><span class=\"p\">,</span> <span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;cookie-that-was-tampered-with&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">BadSignature: ...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"n\">max_age</span><span class=\"o\">=</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n<span class=\"go\">SignatureExpired: Signature age 1677.3839159 &gt; 60 seconds</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_signed_cookie</span><span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> <span class=\"kc\">False</span><span class=\"p\">,</span> <span class=\"n\">max_age</span><span class=\"o\">=</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n</code></pre></div>\n<p>詳細については、 <a class=\"reference internal\" href=\"/ja/5.2/topics/signing/\"><span class=\"doc\">暗号署名</span></a> を参照してください。</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2.15\">\n<p class=\"version-note-title\">Changed in Django 5.2.15</p><p>In older versions, cookies signed with distinct <code class=\"docutils literal notranslate\"><span class=\"pre\">(key,</span> <span class=\"pre\">salt)</span></code> pairs\nthat concatenate to the same string could be used interchangeably.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.is_secure\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_secure</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.is_secure\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストがセキュアである場合、つまりHTTPSで行われた場合に <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_preferred_type\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get_preferred_type</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">media_types</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_preferred_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーに基づいて、 <code class=\"docutils literal notranslate\"><span class=\"pre\">media_types</span></code> の中から優先される MIME タイプを返します。クライアントが指定されたいずれのタイプも受け入れない場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> を返します。</p>\n<p>クライアントが <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーとして <code class=\"docutils literal notranslate\"><span class=\"pre\">text/html,application/json;q=0.8</span></code> を送信したと仮定します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_preferred_type</span><span class=\"p\">([</span><span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;application/json&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&quot;text/html&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_preferred_type</span><span class=\"p\">([</span><span class=\"s2\">&quot;application/json&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/plain&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&quot;application/json&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_preferred_type</span><span class=\"p\">([</span><span class=\"s2\">&quot;application/xml&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/plain&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">None</span>\n</code></pre></div>\n<p>MIME タイプにパラメーターが含まれている場合、それらも優先されるメディアタイプを判断する際に考慮されます。たとえば、<code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーが <code class=\"docutils literal notranslate\"><span class=\"pre\">text/vcard;version=3.0,text/html;q=0.5</span></code> の場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.get_preferred_type()</span></code> の返り値は、利用可能なメディアタイプによって異なります：</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_preferred_type</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=4.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=3.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/directory&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">]</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&quot;text/vcard; version=3.0&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_preferred_type</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=4.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">]</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&quot;text/html&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">get_preferred_type</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=4.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/directory&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">]</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">None</span>\n</code></pre></div>\n<p>（コンテンツネゴシエーションの詳細な仕組みについては、 <span class=\"target\" id=\"index-27\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-12.5.1\"><strong>RFC 9110 Section 12.5.1</strong></a> を参照してください。）</p>\n<p>ほとんどのブラウザはデフォルトで <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept:</span> <span class=\"pre\">*/*</span></code> を送信するため、特に優先順位が指定されません。その場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">media_types</span></code> の最初の項目が返されます。</p>\n<p>API リクエストで明示的に <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーを設定すると、そのクライアントに対してのみ異なるコンテンツタイプを返すのに役立ちます。 <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーに基づいて異なるコンテンツを返す例については <a class=\"reference internal\" href=\"/ja/5.2/topics/class-based-views/generic-editing/#content-negotiation-example\"><span class=\"std std-ref\">コンテンツネゴシエーションの例</span></a> を参照してください。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>レスポンスが <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーの内容によって変わる場合、 Django の <a class=\"reference internal\" href=\"/ja/5.2/ref/middleware/#module-django.middleware.cache\" title=\"django.middleware.cache: Middleware for the site-wide cache.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">キャッシュミドルウェア</span></code></a> などのキャッシュ形式を使用している場合は、レスポンスが適切にキャッシュされるように、ビューを <a class=\"reference internal\" href=\"/ja/5.2/topics/http/decorators/#django.views.decorators.vary.vary_on_headers\" title=\"django.views.decorators.vary.vary_on_headers\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">vary_on_headers('Accept')</span></code></a> でデコレートする必要があります。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.accepts\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">accepts</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">mime_type</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.accepts\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストの <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダが <code class=\"docutils literal notranslate\"><span class=\"pre\">mime_type</span></code> 引数と一致する場合に <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">request</span><span class=\"o\">.</span><span class=\"n\">accepts</span><span class=\"p\">(</span><span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>大半のブラウザは <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept:</span> <span class=\"pre\">*/*</span></code> をデフォルトで送信するので、すべてのコンテンツタイプに対して <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">accepts()</span></code> を用いて <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept</span></code> ヘッダーに基づき異なるコンテンツを返す例については、 <a class=\"reference internal\" href=\"/ja/5.2/topics/class-based-views/generic-editing/#content-negotiation-example\"><span class=\"std std-ref\">コンテンツネゴシエーションの例</span></a> を参照してください。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.read\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">read</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">size</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.read\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.readline\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">readline</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.readline\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.readlines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">readlines</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.readlines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.__iter__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpRequest.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__iter__</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.__iter__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> インスタンスから読み取るためのファイルライクなインターフェースを実装するメソッドです。これにより、着信リクエストをストリーミング形式で消費することが可能になります。一般的な使用例は、大きなXMLペイロードをメモリ内で完全なXMLツリーを構築することなく、繰り返しパーサーで処理する場合です。</p>\n<p>この標準インターフェースを用いると、 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code> インスタンスは <a class=\"reference external\" href=\"https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ElementTree</span></code></a> のようなXMLパーサーに直接渡すことができます。</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">xml.etree.ElementTree</span><span class=\"w\"> </span><span class=\"k\">as</span><span class=\"w\"> </span><span class=\"nn\">ET</span>\n\n<span class=\"k\">for</span> <span class=\"n\">element</span> <span class=\"ow\">in</span> <span class=\"n\">ET</span><span class=\"o\">.</span><span class=\"n\">iterparse</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"n\">process</span><span class=\"p\">(</span><span class=\"n\">element</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"querydict-objects\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> オブジェクト<a class=\"heading-anchor\" href=\"#querydict-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">QueryDict</span></span><a class=\"heading-anchor\" href=\"#django.http.QueryDict\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> オブジェクト内では、<a class=\"reference internal\" href=\"#django.http.HttpRequest.GET\" title=\"django.http.HttpRequest.GET\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">GET</span></code></a> と <a class=\"reference internal\" href=\"#django.http.HttpRequest.POST\" title=\"django.http.HttpRequest.POST\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">POST</span></code></a> 属性は <code class=\"docutils literal notranslate\"><span class=\"pre\">django.http.QueryDict</span></code> のインスタンスです。これは、同一のキーに対する複数の値を扱うためにカスタマイズされた、辞書型に似たクラスです。これが必要なのは、いくつかの HTML (特に <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;select</span> <span class=\"pre\">multiple&gt;</span></code>) が同一キーで複数の値を渡すからです。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code> の <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code>は、通常の request/response 内でアクセスするときには編集不可です。編集可能なものを取得するには、<a class=\"reference internal\" href=\"#django.http.QueryDict.copy\" title=\"django.http.QueryDict.copy\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QueryDict.copy()</span></code></a> を使う必要があります。</p>\n<section id=\"id1\">\n<h3>メソッド<a class=\"heading-anchor\" href=\"#id1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code></a> はディクショナリのサブクラスなので、標準的なディクショナリのメソッドを全て実装しています。当てはまらないのはおおむね以下の通りです:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.__init__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__init__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">query_string</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">mutable</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.__init__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code>に基づいて <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> オブジェクトをインスタンス化します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;c=3&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QueryDict: {&#39;a&#39;: [&#39;1&#39;, &#39;2&#39;], &#39;c&#39;: [&#39;3&#39;]}&gt;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">query_string</span></code> が渡されなかった場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> 空となります (何のキーや値も持ちません)。</p>\n<p>使用する <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> のほとんど、特に <code class=\"docutils literal notranslate\"><span class=\"pre\">request.POST</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code> における場合、編集不可となっています。自分でインスタンスを生成する場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">__init__()</span></code> に <code class=\"docutils literal notranslate\"><span class=\"pre\">mutable=True</span></code> を渡すことで編集可能にできます。</p>\n<p>キーとバリューの両方を設定するための文字列は、<code class=\"docutils literal notranslate\"><span class=\"pre\">encoding</span></code> から <code class=\"docutils literal notranslate\"><span class=\"pre\">str</span></code> に変換されます。<code class=\"docutils literal notranslate\"><span class=\"pre\">encoding</span></code> がセットされていない場合、<a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a> がデフォルトとなります。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.fromkeys\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">classmethod</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">fromkeys</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">iterable</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">mutable</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoding</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.fromkeys\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>新しい <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> を作成します。キーは <code class=\"docutils literal notranslate\"><span class=\"pre\">iterable</span></code> で、各値は <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> になります。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">QueryDict</span><span class=\"o\">.</span><span class=\"n\">fromkeys</span><span class=\"p\">([</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;b&quot;</span><span class=\"p\">],</span> <span class=\"n\">value</span><span class=\"o\">=</span><span class=\"s2\">&quot;val&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QueryDict: {&#39;a&#39;: [&#39;val&#39;, &#39;val&#39;], &#39;b&#39;: [&#39;val&#39;]}&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.__getitem__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__getitem__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.__getitem__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたキーに対する最後の値を返します。キーは存在するが値がない場合は空リスト（ <code class=\"docutils literal notranslate\"><span class=\"pre\">[]</span></code> ）を返します。キーが存在しない場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">django.utils.datastructures.MultiValueDictKeyError</span></code> を送出します。（これは Python 標準の <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#KeyError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">KeyError</span></code></a> のサブクラスなので、単に <code class=\"docutils literal notranslate\"><span class=\"pre\">KeyError</span></code> を捕捉しても構いません。）</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">,</span> <span class=\"n\">mutable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"fm\">__getitem__</span><span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;3&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"fm\">__setitem__</span><span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">,</span> <span class=\"p\">[])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"fm\">__getitem__</span><span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">[]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.__setitem__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__setitem__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.__setitem__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定したキーを <code class=\"docutils literal notranslate\"><span class=\"pre\">[value]</span></code> (各要素が <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> のリスト) にセットします。 副作用を持つ他のディクショナリ関数と同様に、編集可能な <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> (<a class=\"reference internal\" href=\"#django.http.QueryDict.copy\" title=\"django.http.QueryDict.copy\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QueryDict.copy()</span></code></a> で作成されたものなど) のみで呼び出し可能です.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.__contains__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__contains__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.__contains__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定したキーがセットされている場合 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> を返します。例えば <code class=\"docutils literal notranslate\"><span class=\"pre\">if</span> <span class=\"pre\">&quot;foo&quot;</span> <span class=\"pre\">in</span> <span class=\"pre\">request.GET</span></code> を実行するのと同じです。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.get\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.get\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">__getitem__()</span></code></a> と同じロジックを使いますが、キーが存在しない場合のデフォルト値をフックします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.setdefault\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">setdefault</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.setdefault\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict.setdefault\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dict.setdefault()</span></code></a> に似ていますが、内部では <a class=\"reference internal\" href=\"#django.http.QueryDict.__setitem__\" title=\"django.http.QueryDict.__setitem__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">__setitem__()</span></code></a> を使用します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.update\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">update</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">other_dict</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.update\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> または辞書のどちらかを取ります。 <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict.update\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dict.update()</span></code></a> と似ていますが、現在の辞書の項目を置き換えるのではなく <em>追加</em> します。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&quot;</span><span class=\"p\">,</span> <span class=\"n\">mutable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">update</span><span class=\"p\">({</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;2&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">getlist</span><span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;1&#39;, &#39;2&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"p\">[</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">]</span>  <span class=\"c1\"># returns the last</span>\n<span class=\"go\">&#39;2&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.items\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">items</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.items\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict.items\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dict.items()</span></code></a> と似ていますが、これは <a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">__getitem__()</span></code></a> と同じ最後の値のロジックを使用し、ビューオブジェクトの代わりにイテレータオブジェクトを返します。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">items</span><span class=\"p\">())</span>\n<span class=\"go\">[(&#39;a&#39;, &#39;3&#39;)]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.values\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">values</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.values\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict.values\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dict.values()</span></code></a> のように、<a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">__getitem__()</span></code></a> と同じ最後の値のロジックを使用しますが、ビューオブジェクトの代わりにイテレータを返します。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">())</span>\n<span class=\"go\">[&#39;3&#39;]</span>\n</code></pre></div>\n</dd></dl>\n\n<p>加えて、<code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> は以下のメソッドを持ちます:</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.copy\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">copy</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.copy\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference external\" href=\"https://docs.python.org/3/library/copy.html#copy.deepcopy\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">copy.deepcopy()</span></code></a> を使用してオブジェクトのコピーを返します。このコピーは、元のオブジェクトがイミュータブルであったとしても、ミュータブルです。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.getlist\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">getlist</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.getlist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>リクエストされたキーのデータのリストを返します。キーが存在しない場合には、 <code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> であれば空のリストを返します。デフォルト値がリストでない限り、リストを返すことが保証されています。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.setlist\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">setlist</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">list_</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.setlist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたキーを <code class=\"docutils literal notranslate\"><span class=\"pre\">list_</span></code> に設定します ( <a class=\"reference internal\" href=\"#django.http.QueryDict.__setitem__\" title=\"django.http.QueryDict.__setitem__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">__setitem__()</span></code></a> と異なります)。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.appendlist\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">appendlist</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">item</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.appendlist\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>key に関連付けられた内部リストに項目を追加します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.setlistdefault\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">setlistdefault</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">default_list</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.setlistdefault\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.QueryDict.setdefault\" title=\"django.http.QueryDict.setdefault\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">setdefault()</span></code></a> に似ていますが、単一の値の代わりに値のリストを取ります。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.lists\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">lists</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.lists\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.QueryDict.items\" title=\"django.http.QueryDict.items\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">items()</span></code></a> に似ていますが、辞書の各メンバーに対して、すべての値をリストとして含んでいます。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">lists</span><span class=\"p\">()</span>\n<span class=\"go\">[(&#39;a&#39;, [&#39;1&#39;, &#39;2&#39;, &#39;3&#39;])]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.pop\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">pop</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.pop\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたキーに対応する値のリストを返し、それらを辞書から削除します。キーが存在しない場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">KeyError</span></code> を発生させます。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">,</span> <span class=\"n\">mutable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">pop</span><span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;1&#39;, &#39;2&#39;, &#39;3&#39;]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.popitem\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">popitem</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.popitem\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>辞書の任意のメンバーを削除し (順序の概念がないため)、キーとキーに対するすべての値のリストを含む2値タプルを返します。空の辞書に対して呼び出されると <code class=\"docutils literal notranslate\"><span class=\"pre\">KeyError</span></code> を発生させます。例えば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">,</span> <span class=\"n\">mutable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">popitem</span><span class=\"p\">()</span>\n<span class=\"go\">(&#39;a&#39;, [&#39;1&#39;, &#39;2&#39;, &#39;3&#39;])</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.dict\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">dict</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.dict\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> の各(key, list)ペアに対して、 <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> 形式の表現を返します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> は、リストの中の要素の1つである item に対して、(key, item) のペアを持ちます。これは、 <a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QueryDict.__getitem__()</span></code></a> と同じロジックを使用します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=3&amp;a=5&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">dict</span><span class=\"p\">()</span>\n<span class=\"go\">{&#39;a&#39;: &#39;5&#39;}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.urlencode\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">QueryDict.</span></span><span class=\"sig-name descname\"><span class=\"pre\">urlencode</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">safe</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.QueryDict.urlencode\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>クエリ文字列形式のデータを文字列で返します。例えば：</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"s2\">&quot;a=2&amp;b=3&amp;b=5&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">urlencode</span><span class=\"p\">()</span>\n<span class=\"go\">&#39;a=2&amp;b=3&amp;b=5&#39;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code> パラメータを使って、エンコードを不要とする文字を渡すことができます。たとえば:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span> <span class=\"o\">=</span> <span class=\"n\">QueryDict</span><span class=\"p\">(</span><span class=\"n\">mutable</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"p\">[</span><span class=\"s2\">&quot;next&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/a&amp;b/&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">q</span><span class=\"o\">.</span><span class=\"n\">urlencode</span><span class=\"p\">(</span><span class=\"n\">safe</span><span class=\"o\">=</span><span class=\"s2\">&quot;/&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;next=/a%26b/&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"httpresponse-objects\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> オブジェクト<a class=\"heading-anchor\" href=\"#httpresponse-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponse</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Django によって自動的に生成される <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code></a> オブジェクトとは対照的に、<a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> オブジェクトの作成はあなたの責任です。プログラム内に記述されるあらゆるビューは、<a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> をインスタンス化し、データを格納して返す必要があります。</p>\n<p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> クラスは <a class=\"reference internal\" href=\"#module-django.http\" title=\"django.http: Classes dealing with HTTP requests and responses.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.http</span></code></a> モジュール内に存在します。</p>\n<section id=\"usage\">\n<h3>使い方<a class=\"heading-anchor\" href=\"#usage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"passing-strings\">\n<h4>文字列を渡す<a class=\"heading-anchor\" href=\"#passing-strings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>一般的な使い方としては、ページのコンテンツを文字列、バイト文字列、または <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#memoryview\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">memoryview</span></code></a> として、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> コンストラクタに渡します。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"s2\">&quot;Here&#39;s the text of the web page.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"s2\">&quot;Text only, please.&quot;</span><span class=\"p\">,</span> <span class=\"n\">content_type</span><span class=\"o\">=</span><span class=\"s2\">&quot;text/plain&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"sa\">b</span><span class=\"s2\">&quot;Bytestrings are also accepted.&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"nb\">memoryview</span><span class=\"p\">(</span><span class=\"sa\">b</span><span class=\"s2\">&quot;Memoryview as well.&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>しかし、内容を段階的に追加したい場合は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">response</span></code> をファイルライクオブジェクトとして使用できます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span><span class=\"o\">.</span><span class=\"n\">write</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;p&gt;Here&#39;s the text of the web page.&lt;/p&gt;&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span><span class=\"o\">.</span><span class=\"n\">write</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;p&gt;Here&#39;s another paragraph.&lt;/p&gt;&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"passing-iterators\">\n<h4>イテレータを渡す<a class=\"heading-anchor\" href=\"#passing-iterators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>最後に、文字列ではなくイテレータを <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> に渡すこともできます。 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> はイテレータを即座に受け取り、その内容を文字列として保存し、破棄します。ファイルやジェネレータのような <code class=\"docutils literal notranslate\"><span class=\"pre\">close()</span></code> メソッドを持つオブジェクトは、すぐに閉じられます。</p>\n<p>レスポンスに対して、イテレータからクライアントにストリーミングさせる必要がある場合には、代わりに <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> クラスを使う必要があります。</p>\n</section>\n<section id=\"setting-header-fields\">\n<span id=\"id2\"></span><h4>ヘッダーフィールドをセットする<a class=\"heading-anchor\" href=\"#setting-header-fields\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>レスポンスでヘッダーフィールドを設定または削除するには、 <a class=\"reference internal\" href=\"#django.http.HttpResponse.headers\" title=\"django.http.HttpResponse.headers\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpResponse.headers</span></code></a> を使用してください。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span><span class=\"o\">.</span><span class=\"n\">headers</span><span class=\"p\">[</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"mi\">120</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">del</span> <span class=\"n\">response</span><span class=\"o\">.</span><span class=\"n\">headers</span><span class=\"p\">[</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>レスポンスを辞書のように扱うことで、ヘッダーを操作することもできます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span><span class=\"p\">[</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"mi\">120</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">del</span> <span class=\"n\">response</span><span class=\"p\">[</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>これは <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse.headers</span></code> へのプロキシで、 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> が提供する本来のインタフェースです。</p>\n<p>このインターフェースを使用する際、辞書とは異なり、ヘッダーフィールドが存在しない場合に <code class=\"docutils literal notranslate\"><span class=\"pre\">del</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">KeyError</span></code> を発生させることはありません。</p>\n<p>インスタンス化の際にもヘッダーを設定できます:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span><span class=\"n\">headers</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">120</span><span class=\"p\">})</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Cache-Control</span></code> および <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> ヘッダーフィールドを設定するには、これらのフィールドが複数のカンマ区切りの値を持ち得るため、 <a class=\"reference internal\" href=\"/ja/5.2/ref/utils/#module-django.utils.cache\" title=\"django.utils.cache: Helper functions for controlling caching.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.utils.cache</span></code></a> から <a class=\"reference internal\" href=\"/ja/5.2/ref/utils/#django.utils.cache.patch_cache_control\" title=\"django.utils.cache.patch_cache_control\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">patch_cache_control()</span></code></a> と <a class=\"reference internal\" href=\"/ja/5.2/ref/utils/#django.utils.cache.patch_vary_headers\" title=\"django.utils.cache.patch_vary_headers\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">patch_vary_headers()</span></code></a> メソッドを使用することが推奨されます。&quot;patch&quot; メソッドは、ミドルウェアによって追加された他の値が削除されないように保証します。</p>\n<p>HTTP ヘッダフィールドには改行を含めることはできません。改行文字 (CR または LF) を含むヘッダフィールドを設定しようとすると、<code class=\"docutils literal notranslate\"><span class=\"pre\">BadHeaderError</span></code> が発生します。</p>\n</section>\n<section id=\"telling-the-browser-to-treat-the-response-as-a-file-attachment\">\n<h4>レスポンスをファイル添付物として扱うようにブラウザに指示します。<a class=\"heading-anchor\" href=\"#telling-the-browser-to-treat-the-response-as-a-file-attachment\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>ブラウザにレスポンスをファイル添付として扱うように指示するためには、<code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Disposition</span></code> ヘッダを設定します。例えば、Microsoft Excel スプレッドシートを返す方法は以下のようになります:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">HttpResponse</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"n\">my_data</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"n\">headers</span><span class=\"o\">=</span><span class=\"p\">{</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;Content-Type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;application/vnd.ms-excel&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;Content-Disposition&quot;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;attachment; filename=&quot;foo.xls&quot;&#39;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">},</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Disposition</span></code> ヘッダについては Django 固有のものはありませんが、その構文を忘れやすいので、ここに含めています。</p>\n</section>\n</section>\n<section id=\"id3\">\n<h3>属性<a class=\"heading-anchor\" href=\"#id3\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.content\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">content</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.content\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>必要に応じて文字列からエンコードされた、コンテンツを表すバイト文字列。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.text\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">text</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"5.2\">\n<p class=\"version-note-title\">New in Django 5.2</p></aside>\n<p>レスポンスの <a class=\"reference internal\" href=\"#django.http.HttpResponse.charset\" title=\"django.http.HttpResponse.charset\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpResponse.charset</span></code></a> （空の場合は <code class=\"docutils literal notranslate\"><span class=\"pre\">UTF-8</span></code> がデフォルト）を用いてデコードした、 <a class=\"reference internal\" href=\"#django.http.HttpResponse.content\" title=\"django.http.HttpResponse.content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpResponse.content</span></code></a> の文字列表現。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.cookies\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">cookies</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.cookies\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスに含まれるクッキーを保持する <a class=\"reference external\" href=\"https://docs.python.org/3/library/http.cookies.html#http.cookies.SimpleCookie\" title=\"(in Python v3.14)\"><code class=\"xref py py-obj docutils literal notranslate\"><span class=\"pre\">http.cookies.SimpleCookie</span></code></a> オブジェクトです。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.headers\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">headers</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>大文字小文字を区別しない辞書型オブジェクトで、<code class=\"docutils literal notranslate\"><span class=\"pre\">Set-Cookie</span></code> ヘッダを除くすべてのHTTPヘッダに対するインターフェイスを提供します。 <a class=\"reference internal\" href=\"#setting-header-fields\"><span class=\"std std-ref\">ヘッダーフィールドをセットする</span></a> および <a class=\"reference internal\" href=\"#django.http.HttpResponse.cookies\" title=\"django.http.HttpResponse.cookies\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpResponse.cookies</span></code></a> を参照してください。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.charset\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">charset</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.charset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>応答がエンコードされる文字セットを示す文字列です。 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> のインスタンス化の際に指定されなかった場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code> から抽出され、もしこれが失敗した場合は、 <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a> 設定が使用されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.status_code\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">status_code</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.status_code\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスの <span class=\"target\" id=\"index-28\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15\"><strong>HTTP ステータスコード</strong></a> 。</p>\n<p><a class=\"reference internal\" href=\"#django.http.HttpResponse.reason_phrase\" title=\"django.http.HttpResponse.reason_phrase\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">reason_phrase</span></code></a> が明示的にセットされていない限り、コンストラクタの外で <code class=\"docutils literal notranslate\"><span class=\"pre\">status_code</span></code> の値を変更すると <code class=\"docutils literal notranslate\"><span class=\"pre\">reason_phrase</span></code> の値も変更されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.reason_phrase\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">reason_phrase</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.reason_phrase\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスの HTTP reason フレーズです。これは <span class=\"target\" id=\"index-29\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15.1\"><strong>HTTP 標準の</strong></a> デフォルトの reason フレーズを使用します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">reason_phrase</span></code> が明示的に設定されていない場合、 <a class=\"reference internal\" href=\"#django.http.HttpResponse.status_code\" title=\"django.http.HttpResponse.status_code\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">status_code</span></code></a> の値に基づいて決定されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.streaming\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">streaming</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.streaming\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これは常に <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> です。</p>\n<p>この属性は、ミドルウェアが通常のレスポンスとは違う形でストリーミングレスポンスを扱えるようにするために存在しています。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.closed\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">closed</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.closed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスが閉じられた場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> となります。</p>\n</dd></dl>\n\n</section>\n<section id=\"id4\">\n<h3>メソッド<a class=\"heading-anchor\" href=\"#id4\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.__init__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__init__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">content</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">b''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">content_type</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">status</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">200</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">reason</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">charset</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">headers</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.__init__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたページ内容、コンテンツタイプ、およびヘッダーを持つ <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> オブジェクトをインスタンス化します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code> は、最も一般的にはイテレータ、バイト文字列、 <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#memoryview\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">memoryview</span></code></a> 、または文字列です。その他の型は、文字列表現をエンコードしてバイト文字列に変換されます。イテレータは文字列またはバイト文字列を返すべきで、それらはレスポンスの内容を形成するために連結されます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code> は、MIME タイプであり、オプションで文字セットエンコーディングを指定して HTTP <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code> ヘッダを埋めるために使用されます。指定されていない場合、デフォルトでは <code class=\"docutils literal notranslate\"><span class=\"pre\">'text/html'</span></code> と <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a> 設定によって形成されます: つまり <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;text/html;</span> <span class=\"pre\">charset=utf-8&quot;</span></code> 。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">status</span></code> はレスポンスの <span class=\"target\" id=\"index-30\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15\"><strong>HTTPステータスコード</strong></a> です。Python の <a class=\"reference external\" href=\"https://docs.python.org/3/library/http.html#http.HTTPStatus\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">http.HTTPStatus</span></code></a> を使用して、 <code class=\"docutils literal notranslate\"><span class=\"pre\">HTTPStatus.NO_CONTENT</span></code> のような意味のあるエイリアスを使用できます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">reason</span></code> は HTTP レスポンスフレーズです。指定しない場合、デフォルトのフレーズが使用されます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">charset</span></code> は、レスポンスがエンコードされる文字セットです。もし指定されていない場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code> から抽出されます。それが失敗した場合は、 <a class=\"reference internal\" href=\"/ja/5.2/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_CHARSET</span></code></a> 設定が使用されます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">headers</span></code> はレスポンス用のHTTPヘッダーの <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">dict</span></code></a> です。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.__setitem__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__setitem__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">header</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.__setitem__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたヘッダ名に指定された値を設定します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">header</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> は共に文字列であるべきです。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.__delitem__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__delitem__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">header</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.__delitem__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定された名前のヘッダーを削除します。ヘッダーが存在しなくても、静かに失敗します。大文字小文字を区別しません。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.__getitem__\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">__getitem__</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">header</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.__getitem__\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたヘッダ名の値を返します。大文字小文字を区別しません。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.get\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">get</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">header</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">alternate</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.get\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたヘッダーの値を返します。ヘッダーが存在しない場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">alternate</span></code> を返します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.has_header\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">has_header</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">header</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.has_header\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定された名前のヘッダーが存在するかどうかを大文字小文字を区別せずにチェックし、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> または <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> を返します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.items\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">items</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.items\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスのHTTPヘッダに対して、 <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict.items\" title=\"(in Python v3.14)\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">dict.items()</span></code></a> のように動作します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.setdefault\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">setdefault</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">header</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.setdefault\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>ヘッダーがまだ設定されていない場合に、ヘッダーを設定します。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.set_cookie\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">set_cookie</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_age</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expires</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'/'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">domain</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">secure</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">httponly</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">samesite</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.set_cookie\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>クッキーを設定します。パラメータは、Python標準ライブラリ内の <a class=\"reference external\" href=\"https://docs.python.org/3/library/http.cookies.html#http.cookies.Morsel\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Morsel</span></code></a> クッキーオブジェクトと同じです。</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">max_age</span></code> は <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.timedelta\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">timedelta</span></code></a> オブジェクト、整数秒数、または <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> (デフォルト) である必要があります。これにより、クッキーの有効期限はクライアントのブラウザセッションが終了するまでとなります。 <code class=\"docutils literal notranslate\"><span class=\"pre\">expires</span></code> が指定されていない場合は自動的に計算されます。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">expires</span></code> は、 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Wdy,</span> <span class=\"pre\">DD-Mon-YY</span> <span class=\"pre\">HH:MM:SS</span> <span class=\"pre\">GMT&quot;</span></code> 形式の文字列か、UTCの <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code> オブジェクトであるべきです。もし <code class=\"docutils literal notranslate\"><span class=\"pre\">expires</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> オブジェクトである場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">max_age</span></code> が計算されます。</p></li>\n<li><p>クロスドメインのクッキーを設定したい場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">domain</span></code> を使用してください。例えば、 <code class=\"docutils literal notranslate\"><span class=\"pre\">domain=&quot;example.com&quot;</span></code> とすると、www.example.com、blog.example.com などのドメインから読み取れるクッキーが設定されます。そうでない場合、クッキーは設定したドメインのみから読み取れます。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">secure=True</span></code> を使用すると、リクエストが <code class=\"docutils literal notranslate\"><span class=\"pre\">https</span></code> スキームで行われた場合にのみ、クッキーがサーバーに送信されるようになります。</p></li>\n<li><p>クライアントサイドのJavaScriptがクッキーにアクセスするのを防ぎたい場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">httponly=True</span></code> を使用してください。</p>\n<p><a class=\"reference external\" href=\"https://owasp.org/www-community/HttpOnly\">HttpOnly</a> は、Set-Cookie HTTP レスポンスヘッダーに含まれるフラグです。これは、クッキーの <span class=\"target\" id=\"index-31\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc6265.html#section-4.1.2.6\"><strong>RFC 6265</strong></a> 標準の一部であり、クライアントサイドのスクリプトが保護されたクッキーデータにアクセスするリスクを軽減する有用な方法です。</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">samesite='Strict'</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">samesite='Lax'</span></code> を使用して、ブラウザにクロスオリジンリクエストを行う際にこのクッキーを送信しないよう指示します。 <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value\">SameSite</a> はすべてのブラウザに対応しているわけではないため、DjangoのCSRF保護の代わりとなるものではありませんが、防御の深度を増すための措置です。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">samesite='None'</span></code> (文字列) を使えば、このクッキーが同一サイトおよびクロスサイトのすべてのリクエストに送信されることを明示できます。</p>\n</li>\n</ul>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">警告</p>\n<p><span class=\"target\" id=\"index-32\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc6265.html#section-6.1\"><strong>RFC 6265</strong></a> には、ユーザーエージェントが少なくとも 4096 バイトのクッキーをサポートすべきであると記されています。多くのブラウザでは、これが最大サイズでもあります。Django は 4096 バイトを超えるクッキーを保存しようとした際に例外を発生させませんが、多くのブラウザでは正しくクッキーを設定しないでしょう。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.set_signed_cookie\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">set_signed_cookie</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">value</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">salt</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">max_age</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">expires</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'/'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">domain</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">secure</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">httponly</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">samesite</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.set_signed_cookie\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Like <a class=\"reference internal\" href=\"#django.http.HttpResponse.set_cookie\" title=\"django.http.HttpResponse.set_cookie\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">set_cookie()</span></code></a>, but\n<a class=\"reference internal\" href=\"/ja/5.2/topics/signing/\"><span class=\"doc\">cryptographic signing</span></a> the cookie before setting\nit. Use in conjunction with <a class=\"reference internal\" href=\"#django.http.HttpRequest.get_signed_cookie\" title=\"django.http.HttpRequest.get_signed_cookie\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">HttpRequest.get_signed_cookie()</span></code></a>.\nYou can use the optional <code class=\"docutils literal notranslate\"><span class=\"pre\">salt</span></code> argument to put the cookie into a\nseparate signature namespace, but you will need to remember to pass it to\nthe corresponding\n<a class=\"reference internal\" href=\"#django.http.HttpRequest.get_signed_cookie\" title=\"django.http.HttpRequest.get_signed_cookie\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">HttpRequest.get_signed_cookie()</span></code></a> call.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.delete_cookie\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">delete_cookie</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">key</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">path</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">'/'</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">domain</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">samesite</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.delete_cookie\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定されたキーを持つクッキーを削除します。キーが存在しない場合は、静かに失敗します。</p>\n<p>クッキーの動作方法により、 <code class=\"docutils literal notranslate\"><span class=\"pre\">path</span></code> と <code class=\"docutils literal notranslate\"><span class=\"pre\">domain</span></code> は <code class=\"docutils literal notranslate\"><span class=\"pre\">set_cookie()</span></code> で使用した値と同じでなければなりません。そうでない場合、クッキーが削除されない可能性があります。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.close\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">close</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.close\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このメソッドは、リクエストの終了時に、WSGIサーバーによって直接呼び出されます。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.write\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">write</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">content</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.write\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このメソッドは、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをファイルライクオブジェクトにします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.flush\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">flush</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.flush\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このメソッドは、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをファイルライクオブジェクトにします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.tell\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">tell</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.tell\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このメソッドは、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをファイルライクオブジェクトにします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.getvalue\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">getvalue</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.getvalue\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse.content\" title=\"django.http.HttpResponse.content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpResponse.content</span></code></a> の値を返します。このメソッドにより、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスはストリームライクオブジェクトになります。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.readable\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">readable</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.readable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>常に <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> です。このメソッドは <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをストリームライクオブジェクトにします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.seekable\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">seekable</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.seekable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>常に <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> です。このメソッドは <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをストリームライクオブジェクトにします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.writable\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">writable</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.writable\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>常に <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> です。このメソッドは <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをストリームライクオブジェクトにします。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.writelines\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">HttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">writelines</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">lines</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.writelines\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスに行のリストを書き込みます。行区切りは追加されません。このメソッドは、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> インスタンスをストリームライクオブジェクトにします。</p>\n</dd></dl>\n\n</section>\n<section id=\"httpresponse-subclasses\">\n<span id=\"ref-httpresponse-subclasses\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> サブクラス<a class=\"heading-anchor\" href=\"#httpresponse-subclasses\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Djangoには、異なるタイプのHTTPレスポンスを処理するための <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> のサブクラスがいくつか含まれています。 <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code> と同様に、これらのサブクラスは <a class=\"reference internal\" href=\"#module-django.http\" title=\"django.http: Classes dealing with HTTP requests and responses.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.http</span></code></a> に存在します。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseRedirect\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseRedirect</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseRedirect\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>コンストラクタの第1引数は必須で、リダイレクト先のパスを指定します。これは、完全修飾URL（例： <code class=\"docutils literal notranslate\"><span class=\"pre\">'https://www.yahoo.com/search/'</span></code> ）、ドメインを含まない絶対パス（例： <code class=\"docutils literal notranslate\"><span class=\"pre\">'/search/'</span></code> ）、あるいは相対パス（例： <code class=\"docutils literal notranslate\"><span class=\"pre\">'search/'</span></code> ）のいずれでも構いません。最後のケースでは、クライアントのブラウザが現在のパスに基づいて完全なURLを自動的に再構成します。</p>\n<p>コンストラクタはオプションの <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request</span></code> キーワード引数を受け付け、既定値は <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> です。この場合、302 ステータスコードのレスポンスが生成されます。 <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> の場合は、代わりにステータスコードは 307 になります。</p>\n<p>その他のオプションのコンストラクタ引数については、 <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> を参照してください。</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseRedirect.url\">\n<span class=\"sig-name descname\"><span class=\"pre\">url</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseRedirect.url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>この読み取り専用の属性は、レスポンスがリダイレクトするURLを表しています (<code class=\"docutils literal notranslate\"><span class=\"pre\">Location</span></code> レスポンスヘッダに相当します)。</p>\n</dd></dl>\n\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p><code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request</span></code> 引数が追加されました。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponsePermanentRedirect\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponsePermanentRedirect</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponsePermanentRedirect\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponseRedirect\" title=\"django.http.HttpResponseRedirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseRedirect</span></code></a> に似ていますが、 &quot;found&quot; リダイレクト（ステータスコード 302）ではなく恒久的リダイレクト（HTTP ステータスコード 301）を返します。 <code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request=True</span></code> の場合、レスポンスのステータスコードは 308 になります。</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2\">\n<p class=\"version-note-title\">Changed in Django 5.2</p><p><code class=\"docutils literal notranslate\"><span class=\"pre\">preserve_request</span></code> 引数が追加されました。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseNotModified\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseNotModified</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseNotModified\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>コンストラクタは引数を取らず、このレスポンスにはコンテンツを追加すべきではありません。これを使用して、ページがユーザーの最後のリクエスト以降に変更されていないことを指定します(ステータスコード304)。</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseBadRequest\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseBadRequest</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseBadRequest\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と似ていますが、ステータスコードとして 400 を使用します。</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseNotFound\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseNotFound</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseNotFound\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と似ていますが、404 ステータスコードを使用します。</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseForbidden\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseForbidden</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseForbidden\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と似ていますが、403 ステータスコードを使用します。</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseNotAllowed\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseNotAllowed</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseNotAllowed\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と似ていますが、ステータスコード 405 を使用します。コンストラクタへの最初の引数は必須です: 許可されているメソッドのリスト (例: <code class=\"docutils literal notranslate\"><span class=\"pre\">['GET',</span> <span class=\"pre\">'POST']</span></code>)。</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseGone\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseGone</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseGone\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と似ていますが、410 ステータスコードを使用します。</p>\n</dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseServerError\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseServerError</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseServerError\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と似ていますが、ステータスコードとして 500 を使用します。</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> のカスタムサブクラスが <code class=\"docutils literal notranslate\"><span class=\"pre\">render</span></code> メソッドを実装している場合、Djangoはそれを <a class=\"reference internal\" href=\"/ja/5.2/ref/template-response/#django.template.response.SimpleTemplateResponse\" title=\"django.template.response.SimpleTemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SimpleTemplateResponse</span></code></a> を模倣しているものとして扱い、 <code class=\"docutils literal notranslate\"><span class=\"pre\">render</span></code> メソッド自体が有効なレスポンスオブジェクトを返さなければなりません。</p>\n</aside>\n<section id=\"custom-response-classes\">\n<h4>カスタムレスポンスクラス<a class=\"heading-anchor\" href=\"#custom-response-classes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Django が提供していないレスポンスクラスが必要になった場合は、<a class=\"reference external\" href=\"https://docs.python.org/3/library/http.html#http.HTTPStatus\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">http.HTTPStatus</span></code></a> を使用して作成できます。例えば：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HTTPStatus</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">HttpResponse</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">HttpResponseNoContent</span><span class=\"p\">(</span><span class=\"n\">HttpResponse</span><span class=\"p\">):</span>\n    <span class=\"n\">status_code</span> <span class=\"o\">=</span> <span class=\"n\">HTTPStatus</span><span class=\"o\">.</span><span class=\"n\">NO_CONTENT</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"jsonresponse-objects\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">JsonResponse</span></code> オブジェクト<a class=\"heading-anchor\" href=\"#jsonresponse-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.JsonResponse\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">JsonResponse</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">data</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">encoder</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">DjangoJSONEncoder</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">safe</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">json_dumps_params</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">None</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.JsonResponse\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> のサブクラスで、JSONエンコードされたレスポンスを作成するのに役立ちます。このクラスは、いくつかの違いを除き、その基底クラスからほとんどの動作を継承しています:</p>\n<p>デフォルトの <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code> ヘッダーは <em class=\"mimetype\">application/json</em> に設定されています。</p>\n<p>最初のパラメーター <code class=\"docutils literal notranslate\"><span class=\"pre\">data</span></code> は、<code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> インスタンスであるべきです。<code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code> パラメーターが <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> に設定されている場合 (下記参照)、これはどんな JSON シリアライズ可能オブジェクトでも可能です。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">encoder</span></code> のデフォルトは <a class=\"reference internal\" href=\"/ja/5.2/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder\" title=\"django.core.serializers.json.DjangoJSONEncoder\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.serializers.json.DjangoJSONEncoder</span></code></a> で、このエンコーダーがデータのシリアライズに使用されます。このシリアライザについての詳細は、<a class=\"reference internal\" href=\"/ja/5.2/topics/serialization/#serialization-formats-json\"><span class=\"std std-ref\">JSON のシリアライズ</span></a> を参照してください。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code> ブールパラメータのデフォルト値は <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> です。もし <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> に設定されている場合、任意のオブジェクトをシリアライズのために渡すことができます（そうでなければ、 <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> インスタンスのみが許可されます）。<code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code> が <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> であり、非 <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> オブジェクトが第一引数として渡された場合、 <a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#TypeError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TypeError</span></code></a> が発生します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">json_dumps_params</span></code> パラメーターは、レスポンス生成に使用される <code class=\"docutils literal notranslate\"><span class=\"pre\">json.dumps()</span></code> 呼び出しに渡すキーワード引数の辞書です。</p>\n</dd></dl>\n\n<section id=\"id5\">\n<h3>使い方<a class=\"heading-anchor\" href=\"#id5\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>一般的な使用方法は以下のようになります:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">JsonResponse</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">JsonResponse</span><span class=\"p\">({</span><span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span><span class=\"o\">.</span><span class=\"n\">content</span>\n<span class=\"go\">b&#39;{&quot;foo&quot;: &quot;bar&quot;}&#39;</span>\n</code></pre></div>\n<section id=\"serializing-non-dictionary-objects\">\n<h4>辞書以外のオブジェクトのシリアライズ<a class=\"heading-anchor\" href=\"#serializing-non-dictionary-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> 以外のオブジェクトをシリアライズする場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code> パラメータを <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> に設定する必要があります:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">JsonResponse</span><span class=\"p\">([</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">],</span> <span class=\"n\">safe</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">safe=False</span></code> を指定しなかった場合、<a class=\"reference external\" href=\"https://docs.python.org/3/library/exceptions.html#TypeError\" title=\"(in Python v3.14)\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">TypeError</span></code></a> が発生します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> オブジェクトに基づいた API は、より拡張性が高く、柔軟性があり、前方互換性の維持が容易になります。したがって、JSON エンコードされたレスポンスでは非 dict オブジェクトの使用は避けるべきです。</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">警告</p>\n<p><a class=\"reference external\" href=\"https://262.ecma-international.org/5.1/#sec-11.1.4\">ECMAScript 5th edition</a> の前では、JavaScript の <code class=\"docutils literal notranslate\"><span class=\"pre\">Array</span></code> コンストラクタに対する侵害が可能でした。この理由から、Django はデフォルトで <a class=\"reference internal\" href=\"#django.http.JsonResponse\" title=\"django.http.JsonResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">JsonResponse</span></code></a> コンストラクタに辞書以外のオブジェクトを渡すことを許可しません。ただし、ほとんどの最新ブラウザは ECMAScript 5 を実装しており、この攻撃ベクトルが取り除かれています。したがって、このセキュリティ対策を無効にすることが可能です。</p>\n</aside>\n</section>\n<section id=\"changing-the-default-json-encoder\">\n<h4>デフォルトのJSONエンコーダーを変更する<a class=\"heading-anchor\" href=\"#changing-the-default-json-encoder\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>異なるJSONエンコーダークラスを使用する必要がある場合は、コンストラクターメソッドに <code class=\"docutils literal notranslate\"><span class=\"pre\">encoder</span></code> パラメータを渡すことができます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">JsonResponse</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">encoder</span><span class=\"o\">=</span><span class=\"n\">MyJSONEncoder</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"streaminghttpresponse-objects\">\n<span id=\"httpresponse-streaming\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code> オブジェクト<a class=\"heading-anchor\" href=\"#streaminghttpresponse-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">StreamingHttpResponse</span></span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> クラスは、Djangoからブラウザへのレスポンスをストリーミングするために使用されます。</p>\n<aside class=\"admonition-advanced-usage admonition\">\n<p class=\"admonition-title\">高度な使用法</p>\n<p><a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> はやや高度です。アプリケーションを WSGI で同期的に、あるいは ASGI で非同期的に提供するかを知り、使用方法を適切に調整することが重要です。</p>\n<p>これらの注意点を注意深く読んでください。</p>\n</aside>\n<p>WSGI 下での <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> の使用例としては、レスポンスの生成に時間がかかりすぎる場合やメモリを大量に使用する場合にコンテンツをストリーミングすることが挙げられます。例えば、<a class=\"reference internal\" href=\"/ja/5.2/howto/outputting-csv/#streaming-csv-files\"><span class=\"std std-ref\">大きなCSVファイルを生成する場合</span></a> に役立ちます。</p>\n<p>しかしながら、これを行う際にはパフォーマンスを考慮する必要があります。WSGIの下でのDjangoは、短期間のリクエストのために設計されています。ストリーミングレスポンスは、レスポンスの全期間にわたってワーカープロセスを占有します。これにより、パフォーマンスが低下する可能性があります。</p>\n<p>一般的に、ストリーミングレスポンスに頼るのではなく、リクエスト/レスポンスサイクルの外で高コストのタスクを行うほうが良いです。</p>\n<p>しかし、ASGI の下で提供される場合、<a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> はI/Oを待っている間に他のリクエストが提供されるのを妨げる必要はありません。これにより、ストリーミングコンテンツのための長時間生存するリクエストや、ロングポーリングやサーバー送信イベントといったパターンの実装の可能性が開かれます。</p>\n<p>ASGI環境下であっても、<a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> は、クライアントにデータを転送する前に全内容がイテレートされることが絶対に必要な状況でのみ使用すべきです。コンテンツにアクセスできないため、多くのミドルウェアが正常に機能しません。例えば、ストリーミングレスポンスには <code class=\"docutils literal notranslate\"><span class=\"pre\">ETag</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code> ヘッダを生成することができません。</p>\n<p><a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> は、若干異なるAPIを特徴とするため、<a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> のサブクラスではありません。しかし、以下に挙げる顕著な違いを除いて、ほぼ同一です。</p>\n<ul>\n<li><p>コンテンツとしてバイト文字列、<a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#memoryview\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">memoryview</span></code></a>、または文字列を生成するイテレータを渡すべきです。WSGI下で提供する場合、これは同期イテレータであるべきです。ASGI下で提供する場合、これは非同期イテレータであるべきです。</p></li>\n<li><p>その内容にアクセスするには、レスポンスオブジェクト自体をイテレートする必要があります。これはクライアントにレスポンスが返されたときのみ発生すべきです。自分でレスポンスをイテレートすべきではありません。</p>\n<p>WSGIでは、レスポンスは同期的にイテレートされます。ASGIでは、レスポンスは非同期的にイテレートされます。(これが、イテレータのタイプが使用しているプロトコルと一致しなければならない理由です。)</p>\n<p>クラッシュを回避するため、間違ったイテレータのタイプは、イテレート中に正しいタイプにマッピングされ、警告が発生します。ただし、これを行うにはイテレータを完全に消費する必要があり、これは全く <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> を使用する目的を果たしません。</p>\n</li>\n<li><p>これは <code class=\"docutils literal notranslate\"><span class=\"pre\">content</span></code> 属性を持ちません。代わりに <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse.streaming_content\" title=\"django.http.StreamingHttpResponse.streaming_content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">streaming_content</span></code></a> 属性があります。これはミドルウェアでレスポンスのイテラブルをラップするために使用できますが、消費されるべきではありません。</p></li>\n<li><p>レスポンスオブジェクトを反復処理する必要があるため、 <code class=\"docutils literal notranslate\"><span class=\"pre\">text</span></code> 属性を持ちません。</p></li>\n<li><p>ファイルライクオブジェクトの <code class=\"docutils literal notranslate\"><span class=\"pre\">tell()</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">write()</span></code> メソッドは使用できません。これらを使用すると例外が発生します。</p></li>\n</ul>\n<p><a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponse</span></code></a> と <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> は、共通の基底クラス <a class=\"reference internal\" href=\"#django.http.HttpResponseBase\" title=\"django.http.HttpResponseBase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseBase</span></code></a> を持っています。</p>\n<section id=\"id6\">\n<h3>属性<a class=\"heading-anchor\" href=\"#id6\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.streaming_content\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">StreamingHttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">streaming_content</span></span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse.streaming_content\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンス内容のイテレータ。 バイト文字列は <a class=\"reference internal\" href=\"#django.http.HttpResponse.charset\" title=\"django.http.HttpResponse.charset\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">HttpResponse.charset</span></code></a> に従ってエンコードされます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.status_code\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">StreamingHttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">status_code</span></span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse.status_code\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスの <span class=\"target\" id=\"index-33\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15\"><strong>HTTP ステータスコード</strong></a> 。</p>\n<p><a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse.reason_phrase\" title=\"django.http.StreamingHttpResponse.reason_phrase\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">reason_phrase</span></code></a> が明示的にセットされていない限り、コンストラクタの外で <code class=\"docutils literal notranslate\"><span class=\"pre\">status_code</span></code> の値を変更すると <code class=\"docutils literal notranslate\"><span class=\"pre\">reason_phrase</span></code> の値も変更されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.reason_phrase\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">StreamingHttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">reason_phrase</span></span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse.reason_phrase\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>レスポンスの HTTP reason フレーズです。これは <span class=\"target\" id=\"index-34\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15.1\"><strong>HTTP 標準の</strong></a> デフォルトの reason フレーズを使用します。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">reason_phrase</span></code> が明示的に設定されていない場合、 <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse.status_code\" title=\"django.http.StreamingHttpResponse.status_code\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">status_code</span></code></a> の値に基づいて決定されます。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.streaming\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">StreamingHttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">streaming</span></span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse.streaming\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>これは常に <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> です。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.is_async\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">StreamingHttpResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">is_async</span></span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse.is_async\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse.streaming_content\" title=\"django.http.StreamingHttpResponse.streaming_content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse.streaming_content</span></code></a> が非同期イテレータであるかどうかを示す真偽値です。</p>\n<p>これは、 <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse.streaming_content\" title=\"django.http.StreamingHttpResponse.streaming_content\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse.streaming_content</span></code></a> をラップする必要があるミドルウェアにとって便利です。</p>\n</dd></dl>\n\n</section>\n<section id=\"handling-disconnects\">\n<span id=\"request-response-streaming-disconnect\"></span><h3>切断の取り扱い<a class=\"heading-anchor\" href=\"#handling-disconnects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>クライアントがストリーミングレスポンス中に切断されると、Django はレスポンスを処理しているコルーチンをキャンセルします。リソースの手動クリーンアップを行いたい場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">asyncio.CancelledError</span></code> をキャッチして行うことができます:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">async</span> <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">streaming_response</span><span class=\"p\">():</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do some work here</span>\n        <span class=\"k\">async</span> <span class=\"k\">for</span> <span class=\"n\">chunk</span> <span class=\"ow\">in</span> <span class=\"n\">my_streaming_iterator</span><span class=\"p\">():</span>\n            <span class=\"k\">yield</span> <span class=\"n\">chunk</span>\n    <span class=\"k\">except</span> <span class=\"n\">asyncio</span><span class=\"o\">.</span><span class=\"n\">CancelledError</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Handle disconnect</span>\n        <span class=\"o\">...</span>\n        <span class=\"k\">raise</span>\n\n\n<span class=\"k\">async</span> <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_streaming_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span>\n    <span class=\"k\">return</span> <span class=\"n\">StreamingHttpResponse</span><span class=\"p\">(</span><span class=\"n\">streaming_response</span><span class=\"p\">())</span>\n</code></pre></div>\n<p>この例は、レスポンスがストリーミングされている間にクライアントの切断をどのように処理するかを示しているだけです。ビュー内で <code class=\"docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code> オブジェクトを返す前に長時間実行される操作を行う場合は、ビュー自体で <a class=\"reference internal\" href=\"/ja/5.2/topics/async/#async-handling-disconnect\"><span class=\"std std-ref\">切断を処理する</span></a> 必要があるかもしれません。</p>\n</section>\n</section>\n<section id=\"fileresponse-objects\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">FileResponse</span></code> オブジェクト<a class=\"heading-anchor\" href=\"#fileresponse-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.FileResponse\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">FileResponse</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">open_file</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">as_attachment</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">False</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">filename</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">''</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.FileResponse\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><a class=\"reference internal\" href=\"#django.http.FileResponse\" title=\"django.http.FileResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FileResponse</span></code></a> はバイナリファイルに最適化された <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">StreamingHttpResponse</span></code></a> のサブクラスです。もし WSGI サーバーが提供していれば <span class=\"target\" id=\"index-35\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/#optional-platform-specific-file-handling\"><strong>wsgi.file_wrapper</strong></a> を使用し、そうでない場合はファイルを小さなチャンクでストリーミングします。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as_attachment=True</span></code> だと、<code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Disposition</span></code> ヘッダーが <code class=\"docutils literal notranslate\"><span class=\"pre\">attachment</span></code> に設定され、ブラウザにファイルをダウンロードするように要求します。それ以外の場合は、ファイル名が利用可能な場合のみ、値が <code class=\"docutils literal notranslate\"><span class=\"pre\">inline</span></code> （ブラウザのデフォルト値）の <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Disposition</span></code> ヘッダーが設定されます。</p>\n<p>もし <code class=\"docutils literal notranslate\"><span class=\"pre\">open_file</span></code> に名前がない、または <code class=\"docutils literal notranslate\"><span class=\"pre\">open_file</span></code> の名前が適切でない場合は、<code class=\"docutils literal notranslate\"><span class=\"pre\">filename</span></code> パラメータを使用してカスタムファイル名を提供してください。<code class=\"docutils literal notranslate\"><span class=\"pre\">io.BytesIO</span></code> のようなファイルライクオブジェクトを渡す場合、それを <code class=\"docutils literal notranslate\"><span class=\"pre\">FileResponse</span></code> に渡す前に <code class=\"docutils literal notranslate\"><span class=\"pre\">seek()</span></code> を行うのはあなたの仕事です。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">open_file</span></code> の内容から推測できる場合、 <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code> ヘッダーは自動的に設定されます。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code> ヘッダーは、<code class=\"docutils literal notranslate\"><span class=\"pre\">filename</span></code> や <code class=\"docutils literal notranslate\"><span class=\"pre\">open_file</span></code> の名前から推測できる場合には自動的に設定されます。</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">FileResponse</span></code> は、例えば以下のようにバイナリモードで開かれたファイルのような、バイナリー内容を持つあらゆるファイルライクオブジェクトを受け付けます。</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.http</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">FileResponse</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"n\">response</span> <span class=\"o\">=</span> <span class=\"n\">FileResponse</span><span class=\"p\">(</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;myfile.png&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;rb&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>ファイルは自動的に閉じられるため、コンテキストマネージャーで開かないでください。</p>\n<aside class=\"admonition-use-under-asgi admonition\">\n<p class=\"admonition-title\">ASGI における使用</p>\n<p>PythonのファイルAPIは同期的です。これは、ファイルをASGI下で提供するためには、ファイルを完全に消費しなければならないことを意味します。</p>\n<p>非同期にファイルをストリーミングするには、<a class=\"reference external\" href=\"https://github.com/Tinche/aiofiles\">aiofiles</a> のような非同期ファイルAPIを提供するサードパーティパッケージを使用する必要があります。</p>\n</aside>\n<section id=\"id7\">\n<h3>メソッド<a class=\"heading-anchor\" href=\"#id7\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.FileResponse.set_headers\">\n<span class=\"sig-prename descclassname\"><span class=\"pre\">FileResponse.</span></span><span class=\"sig-name descname\"><span class=\"pre\">set_headers</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">open_file</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.FileResponse.set_headers\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>このメソッドはレスポンス初期化中に自動的に呼び出され、<code class=\"docutils literal notranslate\"><span class=\"pre\">open_file</span></code> に応じてさまざまなヘッダー (<code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code>、および <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Disposition</span></code>) を設定します。</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"httpresponsebase-class\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">HttpResponseBase</span></code> クラス<a class=\"heading-anchor\" href=\"#httpresponsebase-class\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseBase\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">HttpResponseBase</span></span><a class=\"heading-anchor\" href=\"#django.http.HttpResponseBase\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><a class=\"reference internal\" href=\"#django.http.HttpResponseBase\" title=\"django.http.HttpResponseBase\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseBase</span></code></a> クラスは、Django のすべてのレスポンスに共通です。直接レスポンスを作成するために使用すべきではありませんが、型チェックの際に役立つことがあります。</p>\n</section>","rootId":"module-django.http","toc":[{"title":"簡単な概要","anchor":"quick-overview","children":[]},{"title":"HttpRequest オブジェクト","anchor":"httprequest-objects","children":[{"title":"属性","anchor":"attributes","children":[]},{"title":"アプリケーションコードがセットする属性","anchor":"attributes-set-by-application-code","children":[]},{"title":"ミドルウェアが設定する属性","anchor":"attributes-set-by-middleware","children":[]},{"title":"メソッド","anchor":"methods","children":[]}]},{"title":"QueryDict オブジェクト","anchor":"querydict-objects","children":[{"title":"メソッド","anchor":"id1","children":[]}]},{"title":"HttpResponse オブジェクト","anchor":"httpresponse-objects","children":[{"title":"使い方","anchor":"usage","children":[{"title":"文字列を渡す","anchor":"passing-strings","children":[]},{"title":"イテレータを渡す","anchor":"passing-iterators","children":[]},{"title":"ヘッダーフィールドをセットする","anchor":"setting-header-fields","children":[]},{"title":"レスポンスをファイル添付物として扱うようにブラウザに指示します。","anchor":"telling-the-browser-to-treat-the-response-as-a-file-attachment","children":[]}]},{"title":"属性","anchor":"id3","children":[]},{"title":"メソッド","anchor":"id4","children":[]},{"title":"HttpResponse サブクラス","anchor":"httpresponse-subclasses","children":[{"title":"カスタムレスポンスクラス","anchor":"custom-response-classes","children":[]}]}]},{"title":"JsonResponse オブジェクト","anchor":"jsonresponse-objects","children":[{"title":"使い方","anchor":"id5","children":[{"title":"辞書以外のオブジェクトのシリアライズ","anchor":"serializing-non-dictionary-objects","children":[]},{"title":"デフォルトのJSONエンコーダーを変更する","anchor":"changing-the-default-json-encoder","children":[]}]}]},{"title":"StreamingHttpResponse オブジェクト","anchor":"streaminghttpresponse-objects","children":[{"title":"属性","anchor":"id6","children":[]},{"title":"切断の取り扱い","anchor":"handling-disconnects","children":[]}]},{"title":"FileResponse オブジェクト","anchor":"fileresponse-objects","children":[{"title":"メソッド","anchor":"id7","children":[]}]},{"title":"HttpResponseBase クラス","anchor":"httpresponsebase-class","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API リファレンス","url":"/ja/5.2/ref/"}],"prev":{"docname":"ref/paginator","title":"ページ分割 (Paginator)","url":"/ja/5.2/ref/paginator/"},"next":{"docname":"ref/schema-editor","title":"SchemaEditor","url":"/ja/5.2/ref/schema-editor/"},"formats":{"html":"/ja/5.2/ref/request-response/","markdown":"/ja/5.2/ref/request-response.md","json":"/ja/5.2/ref/request-response.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/request-response.txt","official":"https://docs.djangoproject.com/ja/5.2/ref/request-response/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}