{"title":"リクエストとレスポンスのオブジェクト","version":"4.1","locale":"ja","docname":"ref/request-response","url":"/ja/4.1/ref/request-response/","canonical":"https://djangodocs.dev/ja/4.1/ref/request-response/","summary":"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\">HttpRequest</code></a> オブジェクトを生成します。それから Django は <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> をビュー関数の最初の関数として渡し、適切なビューを読み込みます。あらゆるビューは <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</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\">HttpRequest</code></a> と <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</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\">django.http</code></a> モジュールにて定義されています。</p>\n</section>\n<section id=\"httprequest-objects\">\n<h2><code class=\"docutils literal notranslate\">HttpRequest</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\">class</span> </em><span class=\"sig-name descname\">HttpRequest</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\">HttpRequest.</span><span class=\"sig-name descname\">scheme</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\">http</code> か <code class=\"docutils literal notranslate\">https</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\">HttpRequest.</span><span class=\"sig-name descname\">body</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>The raw HTTP request body as a bytestring. This is useful for processing\ndata in different ways than conventional HTML forms: binary images,\nXML payload etc. For processing conventional form data, use\n<a class=\"reference internal\" href=\"#django.http.HttpRequest.POST\" title=\"django.http.HttpRequest.POST\"><code class=\"xref py py-attr docutils literal notranslate\">HttpRequest.POST</code></a>.</p>\n<p>You can also read from an <code class=\"docutils literal notranslate\">HttpRequest</code> using a file-like interface with\n<a class=\"reference internal\" href=\"#django.http.HttpRequest.read\" title=\"django.http.HttpRequest.read\"><code class=\"xref py py-meth docutils literal notranslate\">HttpRequest.read()</code></a> or <a class=\"reference internal\" href=\"#django.http.HttpRequest.readline\" title=\"django.http.HttpRequest.readline\"><code class=\"xref py py-meth docutils literal notranslate\">HttpRequest.readline()</code></a>. Accessing\nthe <code class=\"docutils literal notranslate\">body</code> attribute <em>after</em> reading the request with either of these I/O\nstream methods will produce a <code class=\"docutils literal notranslate\">RawPostDataException</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\">HttpRequest.</span><span class=\"sig-name descname\">path</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>A string representing the full path to the requested page, not including\nthe scheme, domain, or query string.</p>\n<p>例: <code class=\"docutils literal notranslate\">&quot;/music/bands/the_beatles/&quot;</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\">HttpRequest.</span><span class=\"sig-name descname\">path_info</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>Under some web server configurations, the portion of the URL after the\nhost name is split up into a script prefix portion and a path info\nportion. The <code class=\"docutils literal notranslate\">path_info</code> attribute always contains the path info portion\nof the path, no matter what web server is being used. Using this instead\nof <a class=\"reference internal\" href=\"#django.http.HttpRequest.path\" title=\"django.http.HttpRequest.path\"><code class=\"xref py py-attr docutils literal notranslate\">path</code></a> can make your code easier to move between\ntest and deployment servers.</p>\n<p>たとえば、アプリケーションの <code class=\"docutils literal notranslate\">WSGIScriptAlias</code> が <code class=\"docutils literal notranslate\">&quot;/minfo&quot;</code> に設定されている場合、<code class=\"docutils literal notranslate\">path</code> が <code class=\"docutils literal notranslate\">&quot;/minfo/music/bands/the_beatles/&quot;</code> である一方、<code class=\"docutils literal notranslate\">path_info</code> は <code class=\"docutils literal notranslate\">&quot;/music/bands/the_beatles/&quot;</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\">HttpRequest.</span><span class=\"sig-name descname\">method</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> request<span class=\"o\">.</span>method <span class=\"o\">==</span> <span class=\"s1\">&#39;GET&#39;</span><span class=\"p\">:</span>\n    do_something<span class=\"p\">()</span>\n<span class=\"k\">elif</span> request<span class=\"o\">.</span>method <span class=\"o\">==</span> <span class=\"s1\">&#39;POST&#39;</span><span class=\"p\">:</span>\n    do_something_else<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\">HttpRequest.</span><span class=\"sig-name descname\">encoding</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>A string representing the current encoding used to decode form submission\ndata (or <code class=\"docutils literal notranslate\">None</code>, which means the <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a> setting is\nused). You can write to this attribute to change the encoding used when\naccessing the form data. Any subsequent attribute accesses (such as reading\nfrom <a class=\"reference internal\" href=\"#django.http.HttpRequest.GET\" title=\"django.http.HttpRequest.GET\"><code class=\"xref py py-attr docutils literal notranslate\">GET</code></a> or <a class=\"reference internal\" href=\"#django.http.HttpRequest.POST\" title=\"django.http.HttpRequest.POST\"><code class=\"xref py py-attr docutils literal notranslate\">POST</code></a>) will use the new <code class=\"docutils literal notranslate\">encoding</code> value.\nUseful if you know the form data is not in the <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a>\nencoding.</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\">HttpRequest.</span><span class=\"sig-name descname\">content_type</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\">CONTENT_TYPE</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\">HttpRequest.</span><span class=\"sig-name descname\">content_params</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\">CONTENT_TYPE</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\">HttpRequest.</span><span class=\"sig-name descname\">GET</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\">QueryDict</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\">HttpRequest.</span><span class=\"sig-name descname\">POST</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>A dictionary-like object containing all given HTTP POST parameters,\nproviding that the request contains form data. See the\n<a class=\"reference internal\" href=\"#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\">QueryDict</code></a> documentation below. If you need to access raw or\nnon-form data posted in the request, access this through the\n<a class=\"reference internal\" href=\"#django.http.HttpRequest.body\" title=\"django.http.HttpRequest.body\"><code class=\"xref py py-attr docutils literal notranslate\">HttpRequest.body</code></a> attribute instead.</p>\n<p>It's possible that a request can come in via POST with an empty <code class=\"docutils literal notranslate\">POST</code>\ndictionary -- if, say, a form is requested via the POST HTTP method but\ndoes not include form data. Therefore, you shouldn't use <code class=\"docutils literal notranslate\">if request.POST</code>\nto check for use of the POST method; instead, use <code class=\"docutils literal notranslate\">if request.method ==\n&quot;POST&quot;</code> (see <a class=\"reference internal\" href=\"#django.http.HttpRequest.method\" title=\"django.http.HttpRequest.method\"><code class=\"xref py py-attr docutils literal notranslate\">HttpRequest.method</code></a>).</p>\n<p><code class=\"docutils literal notranslate\">POST</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\">FILES</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\">HttpRequest.</span><span class=\"sig-name descname\">COOKIES</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\">HttpRequest.</span><span class=\"sig-name descname\">FILES</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>A dictionary-like object containing all uploaded files. Each key in\n<code class=\"docutils literal notranslate\">FILES</code> is the <code class=\"docutils literal notranslate\">name</code> from the <code class=\"docutils literal notranslate\">&lt;input type=&quot;file&quot; name=&quot;&quot;&gt;</code>. Each\nvalue in <code class=\"docutils literal notranslate\">FILES</code> is an <a class=\"reference internal\" href=\"/ja/4.1/ref/files/uploads/#django.core.files.uploadedfile.UploadedFile\" title=\"django.core.files.uploadedfile.UploadedFile\"><code class=\"xref py py-class docutils literal notranslate\">UploadedFile</code></a>.</p>\n<p>See <a class=\"reference internal\" href=\"/ja/4.1/topics/files/\"><span class=\"doc\">ファイルの管理</span></a> for more information.</p>\n<p><code class=\"docutils literal notranslate\">FILES</code> will only contain data if the request method was POST and the\n<code class=\"docutils literal notranslate\">&lt;form&gt;</code> that posted to the request had <code class=\"docutils literal notranslate\">enctype=&quot;multipart/form-data&quot;</code>.\nOtherwise, <code class=\"docutils literal notranslate\">FILES</code> will be a blank dictionary-like object.</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\">HttpRequest.</span><span class=\"sig-name descname\">META</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\">CONTENT_LENGTH</code> -- リクエスト本文の (文字列としての) 長さです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">CONTENT_TYPE</code> -- リクエスト本文の MIME タイプです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_ACCEPT</code> -- レスポンスに対して受け入れ可能なコンテンツのタイプです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_ACCEPT_ENCODING</code> -- レスポンスに対して受け入れ可能なエンコーディングです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_ACCEPT_LANGUAGE</code> -- レスポンスに対して受け入れ可能な言語です。</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_HOST</code> -- クライアントによって送信された HTTP Host ヘッダです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_REFERER</code> -- (存在する場合) リファラページです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_USER_AGENT</code> -- クライアントのユーザエージェント文字列です。</p></li>\n<li><p><code class=\"docutils literal notranslate\">QUERY_STRING</code> -- クエリ文字列で、単一の (未解析の) 文字列です。</p></li>\n<li><p><code class=\"docutils literal notranslate\">REMOTE_ADDR</code> -- クライアントの IP アドレスです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">REMOTE_HOST</code> -- クライアントのホスト名です。</p></li>\n<li><p><code class=\"docutils literal notranslate\">REMOTE_USER</code> -- The user authenticated by the web server, if any.</p></li>\n<li><p><code class=\"docutils literal notranslate\">REQUEST_METHOD</code> -- <code class=\"docutils literal notranslate\">&quot;GET&quot;</code> や <code class=\"docutils literal notranslate\">&quot;POST&quot;</code> といったです。</p></li>\n<li><p><code class=\"docutils literal notranslate\">SERVER_NAME</code> -- サーバのホスト名です。</p></li>\n<li><p><code class=\"docutils literal notranslate\">SERVER_PORT</code> -- (文字列としての) サーバのポートです。</p></li>\n</ul>\n<p>With the exception of <code class=\"docutils literal notranslate\">CONTENT_LENGTH</code> and <code class=\"docutils literal notranslate\">CONTENT_TYPE</code>, as given\nabove, any HTTP headers in the request are converted to <code class=\"docutils literal notranslate\">META</code> keys by\nconverting all characters to uppercase, replacing any hyphens with\nunderscores and adding an <code class=\"docutils literal notranslate\">HTTP_</code> prefix to the name. So, for example, a\nheader called <code class=\"docutils literal notranslate\">X-Bender</code> would be mapped to the <code class=\"docutils literal notranslate\">META</code> key\n<code class=\"docutils literal notranslate\">HTTP_X_BENDER</code>.</p>\n<p>Note that <a class=\"reference internal\" href=\"/ja/4.1/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\">runserver</code></a> strips all headers with underscores in the\nname, so you won't see them in <code class=\"docutils literal notranslate\">META</code>. This prevents header-spoofing\nbased on ambiguity between underscores and dashes both being normalizing to\nunderscores in WSGI environment variables. It matches the behavior of\nweb servers like Nginx and 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\">HttpRequest.headers</code></a> is a simpler way to access all HTTP-prefixed\nheaders, plus <code class=\"docutils literal notranslate\">CONTENT_LENGTH</code> and <code class=\"docutils literal notranslate\">CONTENT_TYPE</code>.</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\">HttpRequest.</span><span class=\"sig-name descname\">headers</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>A case insensitive, dict-like object that provides access to all\nHTTP-prefixed headers (plus <code class=\"docutils literal notranslate\">Content-Length</code> and <code class=\"docutils literal notranslate\">Content-Type</code>) from\nthe request.</p>\n<p>The name of each header is stylized with title-casing (e.g. <code class=\"docutils literal notranslate\">User-Agent</code>)\nwhen it's displayed. You can access headers case-insensitively:</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=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>headers\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=\"s1\">&#39;User-Agent&#39;</span> <span class=\"ow\">in</span> request<span class=\"o\">.</span>headers\n<span class=\"go\">True</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"s1\">&#39;user-agent&#39;</span> <span class=\"ow\">in</span> request<span class=\"o\">.</span>headers\n<span class=\"go\">True</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>headers<span class=\"p\">[</span><span class=\"s1\">&#39;User-Agent&#39;</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>request<span class=\"o\">.</span>headers<span class=\"p\">[</span><span class=\"s1\">&#39;user-agent&#39;</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>request<span class=\"o\">.</span>headers<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"s1\">&#39;User-Agent&#39;</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>request<span class=\"o\">.</span>headers<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"s1\">&#39;user-agent&#39;</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>For use in, for example, Django templates, headers can also be looked up\nusing underscores in place of hyphens:</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=\"p\">{{</span> request<span class=\"o\">.</span>headers<span class=\"o\">.</span>user_agent <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.resolver_match\">\n<span class=\"sig-prename descclassname\">HttpRequest.</span><span class=\"sig-name descname\">resolver_match</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>An instance of <a class=\"reference internal\" href=\"/ja/4.1/ref/urlresolvers/#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</code></a> representing the\nresolved URL. This attribute is only set after URL resolving took place,\nwhich means it's available in all views but not in middleware which are\nexecuted before URL resolving takes place (you can use it in\n<a class=\"reference internal\" href=\"/ja/4.1/topics/http/middleware/#process_view\" title=\"process_view\"><code class=\"xref py py-meth docutils literal notranslate\">process_view()</code></a> though).</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\">HttpRequest.</span><span class=\"sig-name descname\">current_app</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/4.1/ref/templates/builtins/#std-templatetag-url\"><code class=\"xref std std-ttag docutils literal notranslate\">url</code></a> テンプレートタグは、その値を <a class=\"reference internal\" href=\"/ja/4.1/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a> の <code class=\"docutils literal notranslate\">current_app</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\">HttpRequest.</span><span class=\"sig-name descname\">urlconf</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/4.1/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\">ROOT_URLCONF</code></a> を上書きします。詳しくは <a class=\"reference internal\" href=\"/ja/4.1/topics/http/urls/#how-django-processes-a-request\"><span class=\"std std-ref\">Django のリクエスト処理</span></a> をご覧ください。</p>\n<p><code class=\"docutils literal notranslate\">urlconf</code> は <code class=\"docutils literal notranslate\">None</code> に設定することで、それまでにミドルウェアで行われた変更を取り消し、元の <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\">ROOT_URLCONF</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\">HttpRequest.</span><span class=\"sig-name descname\">exception_reporter_filter</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>This will be used instead of <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_EXCEPTION_REPORTER_FILTER\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_EXCEPTION_REPORTER_FILTER</code></a>\nfor the current request. See <a class=\"reference internal\" href=\"/ja/4.1/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">Custom error reports</span></a> for details.</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\">HttpRequest.</span><span class=\"sig-name descname\">exception_reporter_class</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>This will be used instead of <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_EXCEPTION_REPORTER\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_EXCEPTION_REPORTER</code></a> for the\ncurrent request. See <a class=\"reference internal\" href=\"/ja/4.1/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">Custom error reports</span></a> for details.</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/4.1/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\">MIDDLEWARE</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\">HttpRequest.</span><span class=\"sig-name descname\">session</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/4.1/ref/middleware/#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">SessionMiddleware</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\">HttpRequest.</span><span class=\"sig-name descname\">site</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/4.1/ref/middleware/#django.contrib.sites.middleware.CurrentSiteMiddleware\" title=\"django.contrib.sites.middleware.CurrentSiteMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">CurrentSiteMiddleware</code></a> は、現在のサイトを表す <a class=\"reference internal\" href=\"/ja/4.1/ref/contrib/sites/#django.contrib.sites.models.Site\" title=\"django.contrib.sites.models.Site\"><code class=\"xref py py-class docutils literal notranslate\">Site</code></a> または <a class=\"reference internal\" href=\"/ja/4.1/ref/contrib/sites/#django.contrib.sites.requests.RequestSite\" title=\"django.contrib.sites.requests.RequestSite\"><code class=\"xref py py-class docutils literal notranslate\">RequestSite</code></a> のインスタンスを、<a class=\"reference internal\" href=\"/ja/4.1/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\">get_current_site()</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\">HttpRequest.</span><span class=\"sig-name descname\">user</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>From the <a class=\"reference internal\" href=\"/ja/4.1/ref/middleware/#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">AuthenticationMiddleware</code></a>:\nAn instance of <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\">AUTH_USER_MODEL</code></a> representing the currently\nlogged-in user. If the user isn't currently logged in, <code class=\"docutils literal notranslate\">user</code> will be set\nto an instance of <a class=\"reference internal\" href=\"/ja/4.1/ref/contrib/auth/#django.contrib.auth.models.AnonymousUser\" title=\"django.contrib.auth.models.AnonymousUser\"><code class=\"xref py py-class docutils literal notranslate\">AnonymousUser</code></a>. You\ncan tell them apart with\n<a class=\"reference internal\" href=\"/ja/4.1/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\">is_authenticated</code></a>, like so:</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> request<span class=\"o\">.</span>user<span class=\"o\">.</span>is_authenticated<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</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.get_host\">\n<span class=\"sig-prename descclassname\">HttpRequest.</span><span class=\"sig-name descname\">get_host</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>Returns the originating host of the request using information from the\n<code class=\"docutils literal notranslate\">HTTP_X_FORWARDED_HOST</code> (if <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-USE_X_FORWARDED_HOST\"><code class=\"xref std std-setting docutils literal notranslate\">USE_X_FORWARDED_HOST</code></a> is enabled)\nand <code class=\"docutils literal notranslate\">HTTP_HOST</code> headers, in that order. If they don't provide a value,\nthe method uses a combination of <code class=\"docutils literal notranslate\">SERVER_NAME</code> and <code class=\"docutils literal notranslate\">SERVER_PORT</code> as\ndetailed in <span class=\"target\" id=\"index-0\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/\"><strong>PEP 3333</strong></a>.</p>\n<p>Example: <code class=\"docutils literal notranslate\">&quot;127.0.0.1:8000&quot;</code></p>\n<p>Raises <code class=\"docutils literal notranslate\">django.core.exceptions.DisallowedHost</code> if the host is not in\n<a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\">ALLOWED_HOSTS</code></a> or the domain name is invalid according to\n<span class=\"target\" id=\"index-1\"></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-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc1035.html\"><strong>1035</strong></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>The <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\">get_host()</code></a> method fails when the host is\nbehind multiple proxies. One solution is to use middleware to rewrite\nthe proxy headers, as in the following example:</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=\"nc\">MultipleProxyMiddleware</span><span class=\"p\">:</span>\n    FORWARDED_FOR_FIELDS <span class=\"o\">=</span> <span class=\"p\">[</span>\n        <span class=\"s1\">&#39;HTTP_X_FORWARDED_FOR&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;HTTP_X_FORWARDED_HOST&#39;</span><span class=\"p\">,</span>\n        <span class=\"s1\">&#39;HTTP_X_FORWARDED_SERVER&#39;</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n    <span class=\"k\">def</span> <span class=\"fm\">__init__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> get_response<span class=\"p\">):</span>\n        <span class=\"bp\">self</span><span class=\"o\">.</span>get_response <span class=\"o\">=</span> get_response\n\n    <span class=\"k\">def</span> <span class=\"fm\">__call__</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> request<span class=\"p\">):</span>\n        <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> field <span class=\"ow\">in</span> <span class=\"bp\">self</span><span class=\"o\">.</span>FORWARDED_FOR_FIELDS<span class=\"p\">:</span>\n            <span class=\"k\">if</span> field <span class=\"ow\">in</span> request<span class=\"o\">.</span>META<span class=\"p\">:</span>\n                <span class=\"k\">if</span> <span class=\"s1\">&#39;,&#39;</span> <span class=\"ow\">in</span> request<span class=\"o\">.</span>META<span class=\"p\">[</span>field<span class=\"p\">]:</span>\n                    parts <span class=\"o\">=</span> request<span class=\"o\">.</span>META<span class=\"p\">[</span>field<span class=\"p\">]</span><span class=\"o\">.</span>split<span class=\"p\">(</span><span class=\"s1\">&#39;,&#39;</span><span class=\"p\">)</span>\n                    request<span class=\"o\">.</span>META<span class=\"p\">[</span>field<span class=\"p\">]</span> <span class=\"o\">=</span> parts<span class=\"p\">[</span><span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span>strip<span class=\"p\">()</span>\n        <span class=\"k\">return</span> <span class=\"bp\">self</span><span class=\"o\">.</span>get_response<span class=\"p\">(</span>request<span class=\"p\">)</span>\n</code></pre></div>\n<p>This middleware should be positioned before any other middleware that\nrelies on the value of <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\">get_host()</code></a> -- for instance,\n<a class=\"reference internal\" href=\"/ja/4.1/ref/middleware/#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">CommonMiddleware</code></a> or\n<a class=\"reference internal\" href=\"/ja/4.1/ref/middleware/#django.middleware.csrf.CsrfViewMiddleware\" title=\"django.middleware.csrf.CsrfViewMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">CsrfViewMiddleware</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\">HttpRequest.</span><span class=\"sig-name descname\">get_port</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>Returns the originating port of the request using information from the\n<code class=\"docutils literal notranslate\">HTTP_X_FORWARDED_PORT</code> (if <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-USE_X_FORWARDED_PORT\"><code class=\"xref std std-setting docutils literal notranslate\">USE_X_FORWARDED_PORT</code></a> is enabled)\nand <code class=\"docutils literal notranslate\">SERVER_PORT</code> <code class=\"docutils literal notranslate\">META</code> variables, in that order.</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\">HttpRequest.</span><span class=\"sig-name descname\">get_full_path</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>Returns the <code class=\"docutils literal notranslate\">path</code>, plus an appended query string, if applicable.</p>\n<p>Example: <code class=\"docutils literal notranslate\">&quot;/music/bands/the_beatles/?print=true&quot;</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\">HttpRequest.</span><span class=\"sig-name descname\">get_full_path_info</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>Like <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\">get_full_path()</code></a>, but uses <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\">path_info</code></a> instead of\n<a class=\"reference internal\" href=\"#django.http.HttpRequest.path\" title=\"django.http.HttpRequest.path\"><code class=\"xref py py-attr docutils literal notranslate\">path</code></a>.</p>\n<p>Example: <code class=\"docutils literal notranslate\">&quot;/minfo/music/bands/the_beatles/?print=true&quot;</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\">HttpRequest.</span><span class=\"sig-name descname\">build_absolute_uri</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">location<span class=\"o\">=</span><span class=\"default_value\">None</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>Returns the absolute URI form of <code class=\"docutils literal notranslate\">location</code>. If no location is provided,\nthe location will be set to <code class=\"docutils literal notranslate\">request.get_full_path()</code>.</p>\n<p>If the location is already an absolute URI, it will not be altered.\nOtherwise the absolute URI is built using the server variables available in\nthis request. For example:</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=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>build_absolute_uri<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>request<span class=\"o\">.</span>build_absolute_uri<span class=\"p\">(</span><span class=\"s1\">&#39;/bands/&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;https://example.com/bands/&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>build_absolute_uri<span class=\"p\">(</span><span class=\"s1\">&#39;https://example2.com/bands/&#39;</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>Mixing HTTP and HTTPS on the same site is discouraged, therefore\n<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\">build_absolute_uri()</code></a> will always generate an\nabsolute URI with the same scheme the current request has. If you need\nto redirect users to HTTPS, it's best to let your web server redirect\nall HTTP traffic to 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\">HttpRequest.</span><span class=\"sig-name descname\">get_signed_cookie</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">default<span class=\"o\">=</span><span class=\"default_value\">RAISE_ERROR</span></em>, <em class=\"sig-param\">salt<span class=\"o\">=</span><span class=\"default_value\">''</span></em>, <em class=\"sig-param\">max_age<span class=\"o\">=</span><span class=\"default_value\">None</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>Returns a cookie value for a signed cookie, or raises a\n<code class=\"docutils literal notranslate\">django.core.signing.BadSignature</code> exception if the signature is\nno longer valid. If you provide the <code class=\"docutils literal notranslate\">default</code> argument the exception\nwill be suppressed and that default value will be returned instead.</p>\n<p>The optional <code class=\"docutils literal notranslate\">salt</code> argument can be used to provide extra protection\nagainst brute force attacks on your secret key. If supplied, the\n<code class=\"docutils literal notranslate\">max_age</code> argument will be checked against the signed timestamp\nattached to the cookie value to ensure the cookie is not older than\n<code class=\"docutils literal notranslate\">max_age</code> seconds.</p>\n<p>例:</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=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;Tony&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> salt<span class=\"o\">=</span><span class=\"s1\">&#39;name-salt&#39;</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>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;nonexistent-cookie&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">KeyError: &#39;nonexistent-cookie&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;nonexistent-cookie&#39;</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>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;cookie-that-was-tampered-with&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">BadSignature: ...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> max_age<span class=\"o\">=</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n<span class=\"gp\">...</span>\n<span class=\"go\">SignatureExpired: Signature age 1677.3839159 &gt; 60 seconds</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s1\">&#39;name&#39;</span><span class=\"p\">,</span> <span class=\"kc\">False</span><span class=\"p\">,</span> max_age<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>See <a class=\"reference internal\" href=\"/ja/4.1/topics/signing/\"><span class=\"doc\">cryptographic signing</span></a> for more information.</p>\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\">HttpRequest.</span><span class=\"sig-name descname\">is_secure</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>Returns <code class=\"docutils literal notranslate\">True</code> if the request is secure; that is, if it was made with\nHTTPS.</p>\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\">HttpRequest.</span><span class=\"sig-name descname\">accepts</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">mime_type</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>Returns <code class=\"docutils literal notranslate\">True</code> if the request <code class=\"docutils literal notranslate\">Accept</code> header matches the <code class=\"docutils literal notranslate\">mime_type</code>\nargument:</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=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>accepts<span class=\"p\">(</span><span class=\"s1\">&#39;text/html&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>Most browsers send <code class=\"docutils literal notranslate\">Accept: */*</code> by default, so this would return\n<code class=\"docutils literal notranslate\">True</code> for all content types. Setting an explicit <code class=\"docutils literal notranslate\">Accept</code> header in\nAPI requests can be useful for returning a different content type for those\nconsumers only. See <a class=\"reference internal\" href=\"/ja/4.1/topics/class-based-views/generic-editing/#content-negotiation-example\"><span class=\"std std-ref\">Content negotiation example</span></a> of using\n<code class=\"docutils literal notranslate\">accepts()</code> to return different content to API consumers.</p>\n<p>If a response varies depending on the content of the <code class=\"docutils literal notranslate\">Accept</code> header and\nyou are using some form of caching like Django's <a class=\"reference internal\" href=\"/ja/4.1/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\">cache middleware</code></a>, you should decorate the view with\n<a class=\"reference internal\" href=\"/ja/4.1/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\">vary_on_headers('Accept')</code></a> so that the responses are\nproperly cached.</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\">HttpRequest.</span><span class=\"sig-name descname\">read</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">size<span class=\"o\">=</span><span class=\"default_value\">None</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\">HttpRequest.</span><span class=\"sig-name descname\">readline</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\">HttpRequest.</span><span class=\"sig-name descname\">readlines</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\">HttpRequest.</span><span class=\"sig-name descname\">__iter__</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>Methods implementing a file-like interface for reading from an\n<code class=\"docutils literal notranslate\">HttpRequest</code> instance. This makes it possible to consume an incoming\nrequest in a streaming fashion. A common use-case would be to process a\nbig XML payload with an iterative parser without constructing a whole\nXML tree in memory.</p>\n<p>Given this standard interface, an <code class=\"docutils literal notranslate\">HttpRequest</code> instance can be\npassed directly to an XML parser such as\n<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\">ElementTree</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\">import</span> <span class=\"nn\">xml.etree.ElementTree</span> <span class=\"k\">as</span> <span class=\"nn\">ET</span>\n<span class=\"k\">for</span> element <span class=\"ow\">in</span> ET<span class=\"o\">.</span>iterparse<span class=\"p\">(</span>request<span class=\"p\">):</span>\n    process<span class=\"p\">(</span>element<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\">QueryDict</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\">class</span> </em><span class=\"sig-name descname\">QueryDict</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\">HttpRequest</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\">GET</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\">POST</code></a> 属性は <code class=\"docutils literal notranslate\">django.http.QueryDict</code> のインスタンスです。これは、同一のキーに対する複数の値を扱うためにカスタマイズされた、辞書型に似たクラスです。これが必要なのは、いくつかの HTML (特に <code class=\"docutils literal notranslate\">&lt;select multiple&gt;</code>) が同一キーで複数の値を渡すからです。</p>\n<p><code class=\"docutils literal notranslate\">request.POST</code> や <code class=\"docutils literal notranslate\">request.GET</code> の <code class=\"docutils literal notranslate\">QueryDict</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\">QueryDict.copy()</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\">QueryDict</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\">QueryDict.</span><span class=\"sig-name descname\">__init__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">query_string<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">mutable<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">encoding<span class=\"o\">=</span><span class=\"default_value\">None</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\">QueryDict</code>に基づいて <code class=\"docutils literal notranslate\">QueryDict</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=\"gp\">&gt;&gt;&gt; </span>QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=2&amp;c=3&#39;</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\">query_string</code> が渡されなかった場合は、<code class=\"docutils literal notranslate\">QueryDict</code> 空となります (何のキーや値も持ちません)。</p>\n<p>使用する <code class=\"docutils literal notranslate\">QueryDict</code> のほとんど、特に <code class=\"docutils literal notranslate\">request.POST</code> や <code class=\"docutils literal notranslate\">request.GET</code> における場合、編集不可となっています。自分でインスタンスを生成する場合は、<code class=\"docutils literal notranslate\">__init__()</code> に <code class=\"docutils literal notranslate\">mutable=True</code> を渡すことで編集可能にできます。</p>\n<p>キーとバリューの両方を設定するための文字列は、<code class=\"docutils literal notranslate\">encoding</code> から <code class=\"docutils literal notranslate\">str</code> に変換されます。<code class=\"docutils literal notranslate\">encoding</code> がセットされていない場合、<a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</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\">classmethod</span> </em><span class=\"sig-prename descclassname\">QueryDict.</span><span class=\"sig-name descname\">fromkeys</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">iterable</em>, <em class=\"sig-param\">value<span class=\"o\">=</span><span class=\"default_value\">''</span></em>, <em class=\"sig-param\">mutable<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">encoding<span class=\"o\">=</span><span class=\"default_value\">None</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\">value</code> と一致する各値から、新しい <code class=\"docutils literal notranslate\">QueryDict</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=\"gp\">&gt;&gt;&gt; </span>QueryDict<span class=\"o\">.</span>fromkeys<span class=\"p\">([</span><span class=\"s1\">&#39;a&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;a&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;b&#39;</span><span class=\"p\">],</span> value<span class=\"o\">=</span><span class=\"s1\">&#39;val&#39;</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\">QueryDict.</span><span class=\"sig-name descname\">__getitem__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</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\">django.utils.datastructures.MultiValueDictKeyError</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\">KeyError</code></a> サブクラスなので、<code class=\"docutils literal notranslate\">KeyError</code> をキャッチすることに固執できます)。</p>\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\">QueryDict.</span><span class=\"sig-name descname\">__setitem__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">value</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\">[value]</code> (各要素が <code class=\"docutils literal notranslate\">value</code> のリスト) にセットします。 副作用を持つ他のディクショナリ関数と同様に、編集可能な <code class=\"docutils literal notranslate\">QueryDict</code> (<a class=\"reference internal\" href=\"#django.http.QueryDict.copy\" title=\"django.http.QueryDict.copy\"><code class=\"xref py py-meth docutils literal notranslate\">QueryDict.copy()</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\">QueryDict.</span><span class=\"sig-name descname\">__contains__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</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\">True</code> を返します。例えば <code class=\"docutils literal notranslate\">if &quot;foo&quot; in request.GET</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\">QueryDict.</span><span class=\"sig-name descname\">get</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">default<span class=\"o\">=</span><span class=\"default_value\">None</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\">__getitem__()</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\">QueryDict.</span><span class=\"sig-name descname\">setdefault</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">default<span class=\"o\">=</span><span class=\"default_value\">None</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>Like <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\">dict.setdefault()</code></a>, except it uses <a class=\"reference internal\" href=\"#django.http.QueryDict.__setitem__\" title=\"django.http.QueryDict.__setitem__\"><code class=\"xref py py-meth docutils literal notranslate\">__setitem__()</code></a> internally.</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\">QueryDict.</span><span class=\"sig-name descname\">update</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">other_dict</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\">QueryDict</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\">dict.update()</code></a> と同様に、現在の値を置き換えるのではなく、現在の値に <em>追加</em> します。例えば:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&#39;</span><span class=\"p\">,</span> mutable<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>update<span class=\"p\">({</span><span class=\"s1\">&#39;a&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;2&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>getlist<span class=\"p\">(</span><span class=\"s1\">&#39;a&#39;</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;1&#39;, &#39;2&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"p\">[</span><span class=\"s1\">&#39;a&#39;</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\">QueryDict.</span><span class=\"sig-name descname\">items</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>Like <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\">dict.items()</code></a>, except this uses the same last-value logic as\n<a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\">__getitem__()</code></a> and returns an iterator object instead of a view object.\nFor example:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=2&amp;a=3&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span>q<span class=\"o\">.</span>items<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\">QueryDict.</span><span class=\"sig-name descname\">values</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>Like <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\">dict.values()</code></a>, except this uses the same last-value logic as\n<a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\">__getitem__()</code></a> and returns an iterator instead of a view object. For\nexample:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=2&amp;a=3&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span>q<span class=\"o\">.</span>values<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\">QueryDict</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\">QueryDict.</span><span class=\"sig-name descname\">copy</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>Returns a copy of the object using <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\">copy.deepcopy()</code></a>. This copy will\nbe mutable even if the original was not.</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\">QueryDict.</span><span class=\"sig-name descname\">getlist</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">default<span class=\"o\">=</span><span class=\"default_value\">None</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>Returns a list of the data with the requested key. Returns an empty list if\nthe key doesn't exist and <code class=\"docutils literal notranslate\">default</code> is <code class=\"docutils literal notranslate\">None</code>. It's guaranteed to\nreturn a list unless the default value provided isn't a list.</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\">QueryDict.</span><span class=\"sig-name descname\">setlist</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">list_</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>Sets the given key to <code class=\"docutils literal notranslate\">list_</code> (unlike <a class=\"reference internal\" href=\"#django.http.QueryDict.__setitem__\" title=\"django.http.QueryDict.__setitem__\"><code class=\"xref py py-meth docutils literal notranslate\">__setitem__()</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\">QueryDict.</span><span class=\"sig-name descname\">appendlist</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">item</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>Appends an item to the internal list associated with 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\">QueryDict.</span><span class=\"sig-name descname\">setlistdefault</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">default_list<span class=\"o\">=</span><span class=\"default_value\">None</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>Like <a class=\"reference internal\" href=\"#django.http.QueryDict.setdefault\" title=\"django.http.QueryDict.setdefault\"><code class=\"xref py py-meth docutils literal notranslate\">setdefault()</code></a>, except it takes a list of values instead of a\nsingle value.</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\">QueryDict.</span><span class=\"sig-name descname\">lists</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>Like <a class=\"reference internal\" href=\"#django.http.QueryDict.items\" title=\"django.http.QueryDict.items\"><code class=\"xref py py-meth docutils literal notranslate\">items()</code></a>, except it includes all values, as a list, for each\nmember of the dictionary. For example:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=2&amp;a=3&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>lists<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\">QueryDict.</span><span class=\"sig-name descname\">pop</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</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>Returns a list of values for the given key and removes them from the\ndictionary. Raises <code class=\"docutils literal notranslate\">KeyError</code> if the key does not exist. For example:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=2&amp;a=3&#39;</span><span class=\"p\">,</span> mutable<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>pop<span class=\"p\">(</span><span class=\"s1\">&#39;a&#39;</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\">QueryDict.</span><span class=\"sig-name descname\">popitem</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>Removes an arbitrary member of the dictionary (since there's no concept\nof ordering), and returns a two value tuple containing the key and a list\nof all values for the key. Raises <code class=\"docutils literal notranslate\">KeyError</code> when called on an empty\ndictionary. For example:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=2&amp;a=3&#39;</span><span class=\"p\">,</span> mutable<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>popitem<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\">QueryDict.</span><span class=\"sig-name descname\">dict</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>Returns a <code class=\"docutils literal notranslate\">dict</code> representation of <code class=\"docutils literal notranslate\">QueryDict</code>. For every (key, list)\npair in <code class=\"docutils literal notranslate\">QueryDict</code>, <code class=\"docutils literal notranslate\">dict</code> will have (key, item), where item is one\nelement of the list, using the same logic as <a class=\"reference internal\" href=\"#django.http.QueryDict.__getitem__\" title=\"django.http.QueryDict.__getitem__\"><code class=\"xref py py-meth docutils literal notranslate\">QueryDict.__getitem__()</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=1&amp;a=3&amp;a=5&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>dict<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\">QueryDict.</span><span class=\"sig-name descname\">urlencode</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">safe<span class=\"o\">=</span><span class=\"default_value\">None</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>Returns a string of the data in query string format. For example:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s1\">&#39;a=2&amp;b=3&amp;b=5&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>urlencode<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>Use the <code class=\"docutils literal notranslate\">safe</code> parameter to pass characters which don't require encoding.\nFor example:</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=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span>mutable<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"p\">[</span><span class=\"s1\">&#39;next&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s1\">&#39;/a&amp;b/&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>urlencode<span class=\"p\">(</span>safe<span class=\"o\">=</span><span class=\"s1\">&#39;/&#39;</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\">HttpResponse</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\">class</span> </em><span class=\"sig-name descname\">HttpResponse</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>In contrast to <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> objects, which are created automatically by\nDjango, <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> objects are your responsibility. Each view you\nwrite is responsible for instantiating, populating, and returning an\n<a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</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\">HttpResponse</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\">django.http</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>Typical usage is to pass the contents of the page, as a string, bytestring,\nor <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\">memoryview</code></a>, to the <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> constructor:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> HttpResponse\n<span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<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>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span><span class=\"s2\">&quot;Text only, please.&quot;</span><span class=\"p\">,</span> content_type<span class=\"o\">=</span><span class=\"s2\">&quot;text/plain&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span><span class=\"sa\">b</span><span class=\"s1\">&#39;Bytestrings are also accepted.&#39;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span><span class=\"nb\">memoryview</span><span class=\"p\">(</span><span class=\"sa\">b</span><span class=\"s1\">&#39;Memoryview as well.&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>内容を段階的に追加したい場合は、<code class=\"docutils literal notranslate\">response</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>response<span class=\"o\">.</span>write<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>response<span class=\"o\">.</span>write<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\">HttpResponse</code> に文字列ではなくイテレータを引き渡すことができます。<code class=\"docutils literal notranslate\">HttpResponse</code> はイテレータをただちに消費し、その内容を文字列と保持してから破棄します。<code class=\"docutils literal notranslate\">close()</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\">StreamingHttpResponse</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>To set or remove a header field in your response, use\n<a class=\"reference internal\" href=\"#django.http.HttpResponse.headers\" title=\"django.http.HttpResponse.headers\"><code class=\"xref py py-attr docutils literal notranslate\">HttpResponse.headers</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>response<span class=\"o\">.</span>headers<span class=\"p\">[</span><span class=\"s1\">&#39;Age&#39;</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> response<span class=\"o\">.</span>headers<span class=\"p\">[</span><span class=\"s1\">&#39;Age&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>You can also manipulate headers by treating your response like a dictionary:</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">()</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>response<span class=\"p\">[</span><span class=\"s1\">&#39;Age&#39;</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> response<span class=\"p\">[</span><span class=\"s1\">&#39;Age&#39;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>This proxies to <code class=\"docutils literal notranslate\">HttpResponse.headers</code>, and is the original interface offered\nby <code class=\"docutils literal notranslate\">HttpResponse</code>.</p>\n<p>When using this interface, unlike a dictionary, <code class=\"docutils literal notranslate\">del</code> doesn't raise\n<code class=\"docutils literal notranslate\">KeyError</code> if the header field doesn't exist.</p>\n<p>You can also set headers on instantiation:</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span>headers<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;Age&#39;</span><span class=\"p\">:</span> <span class=\"mi\">120</span><span class=\"p\">})</span>\n</code></pre></div>\n<p>For setting the <code class=\"docutils literal notranslate\">Cache-Control</code> and <code class=\"docutils literal notranslate\">Vary</code> header fields, it is recommended\nto use the <a class=\"reference internal\" href=\"/ja/4.1/ref/utils/#django.utils.cache.patch_cache_control\" title=\"django.utils.cache.patch_cache_control\"><code class=\"xref py py-func docutils literal notranslate\">patch_cache_control()</code></a> and\n<a class=\"reference internal\" href=\"/ja/4.1/ref/utils/#django.utils.cache.patch_vary_headers\" title=\"django.utils.cache.patch_vary_headers\"><code class=\"xref py py-func docutils literal notranslate\">patch_vary_headers()</code></a> methods from\n<a class=\"reference internal\" href=\"/ja/4.1/ref/utils/#module-django.utils.cache\" title=\"django.utils.cache: Helper functions for controlling caching.\"><code class=\"xref py py-mod docutils literal notranslate\">django.utils.cache</code></a>, since these fields can have multiple, comma-separated\nvalues. The &quot;patch&quot; methods ensure that other values, e.g. added by a\nmiddleware, are not removed.</p>\n<p>HTTP header fields cannot contain newlines. An attempt to set a header field\ncontaining a newline character (CR or LF) will raise <code class=\"docutils literal notranslate\">BadHeaderError</code></p>\n</section>\n<section id=\"telling-the-browser-to-treat-the-response-as-a-file-attachment\">\n<h4>Telling the browser to treat the response as a file attachment<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>To tell the browser to treat the response as a file attachment, set the\n<code class=\"docutils literal notranslate\">Content-Type</code> and <code class=\"docutils literal notranslate\">Content-Disposition</code> headers. For example, this is how\nyou might return a Microsoft Excel spreadsheet:</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span>my_data<span class=\"p\">,</span> headers<span class=\"o\">=</span><span class=\"p\">{</span>\n<span class=\"gp\">... </span>    <span class=\"s1\">&#39;Content-Type&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;application/vnd.ms-excel&#39;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"s1\">&#39;Content-Disposition&#39;</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</code></pre></div>\n<p>There's nothing Django-specific about the <code class=\"docutils literal notranslate\">Content-Disposition</code> header, but\nit's easy to forget the syntax, so we've included it here.</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\">HttpResponse.</span><span class=\"sig-name descname\">content</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>A bytestring representing the content, encoded from a string if necessary.</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\">HttpResponse.</span><span class=\"sig-name descname\">headers</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>A case insensitive, dict-like object that provides an interface to all\nHTTP headers on the response. See <a class=\"reference internal\" href=\"#setting-header-fields\"><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.HttpResponse.charset\">\n<span class=\"sig-prename descclassname\">HttpResponse.</span><span class=\"sig-name descname\">charset</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\">HttpResponse</code> のインスタンス化の際に指定されなかった場合、 <code class=\"docutils literal notranslate\">content_type</code> から抽出され、もしこれが失敗した場合は、 <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</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\">HttpResponse.</span><span class=\"sig-name descname\">status_code</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-13\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-6\"><strong>HTTP status code</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\">reason_phrase</code></a> が明示的にセットされていない限り、コンストラクタの外で <code class=\"docutils literal notranslate\">status_code</code> の値を変更すると``reason_phrase`` の値も変更されます。</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\">HttpResponse.</span><span class=\"sig-name descname\">reason_phrase</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>The HTTP reason phrase for the response. It uses the <span class=\"target\" id=\"index-4\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-6.1\"><strong>HTTP standard's</strong></a> default reason phrases.</p>\n<p>Unless explicitly set, <code class=\"docutils literal notranslate\">reason_phrase</code> is determined by the value of\n<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\">status_code</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\">HttpResponse.</span><span class=\"sig-name descname\">streaming</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\">False</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\">HttpResponse.</span><span class=\"sig-name descname\">closed</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\">True</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\">HttpResponse.</span><span class=\"sig-name descname\">__init__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">content<span class=\"o\">=</span><span class=\"default_value\">b''</span></em>, <em class=\"sig-param\">content_type<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">status<span class=\"o\">=</span><span class=\"default_value\">200</span></em>, <em class=\"sig-param\">reason<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">charset<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">headers<span class=\"o\">=</span><span class=\"default_value\">None</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>Instantiates an <code class=\"docutils literal notranslate\">HttpResponse</code> object with the given page content,\ncontent type, and headers.</p>\n<p><code class=\"docutils literal notranslate\">content</code> is most commonly an iterator, bytestring, <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\">memoryview</code></a>,\nor string. Other types will be converted to a bytestring by encoding their\nstring representation. Iterators should return strings or bytestrings and\nthose will be joined together to form the content of the response.</p>\n<p><code class=\"docutils literal notranslate\">content_type</code> is the MIME type optionally completed by a character set\nencoding and is used to fill the HTTP <code class=\"docutils literal notranslate\">Content-Type</code> header. If not\nspecified, it is formed by <code class=\"docutils literal notranslate\">'text/html'</code> and the\n<a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a> settings, by default:\n<code class=\"docutils literal notranslate\">&quot;text/html; charset=utf-8&quot;</code>.</p>\n<p><code class=\"docutils literal notranslate\">status</code> is the <span class=\"target\" id=\"index-5\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-6\"><strong>HTTP status code</strong></a> for the response.\nYou can use Python's <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\">http.HTTPStatus</code></a> for meaningful aliases,\nsuch as <code class=\"docutils literal notranslate\">HTTPStatus.NO_CONTENT</code>.</p>\n<p><code class=\"docutils literal notranslate\">reason</code> is the HTTP response phrase. If not provided, a default phrase\nwill be used.</p>\n<p><code class=\"docutils literal notranslate\">charset</code> is the charset in which the response will be encoded. If not\ngiven it will be extracted from <code class=\"docutils literal notranslate\">content_type</code>, and if that\nis unsuccessful, the <a class=\"reference internal\" href=\"/ja/4.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a> setting will be used.</p>\n<p><code class=\"docutils literal notranslate\">headers</code> is a <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\">dict</code></a> of HTTP headers for the response.</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\">HttpResponse.</span><span class=\"sig-name descname\">__setitem__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">header</em>, <em class=\"sig-param\">value</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>Sets the given header name to the given value. Both <code class=\"docutils literal notranslate\">header</code> and\n<code class=\"docutils literal notranslate\">value</code> should be strings.</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\">HttpResponse.</span><span class=\"sig-name descname\">__delitem__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">header</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>Deletes the header with the given name. Fails silently if the header\ndoesn't exist. Case-insensitive.</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\">HttpResponse.</span><span class=\"sig-name descname\">__getitem__</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">header</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>Returns the value for the given header name. Case-insensitive.</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\">HttpResponse.</span><span class=\"sig-name descname\">get</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">header</em>, <em class=\"sig-param\">alternate<span class=\"o\">=</span><span class=\"default_value\">None</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>Returns the value for the given header, or an <code class=\"docutils literal notranslate\">alternate</code> if the header\ndoesn't exist.</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\">HttpResponse.</span><span class=\"sig-name descname\">has_header</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">header</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>Returns <code class=\"docutils literal notranslate\">True</code> or <code class=\"docutils literal notranslate\">False</code> based on a case-insensitive check for a\nheader with the given name.</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\">HttpResponse.</span><span class=\"sig-name descname\">items</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>Acts like <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\">dict.items()</code></a> for HTTP headers on the response.</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\">HttpResponse.</span><span class=\"sig-name descname\">setdefault</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">header</em>, <em class=\"sig-param\">value</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>Sets a header unless it has already been set.</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\">HttpResponse.</span><span class=\"sig-name descname\">set_cookie</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">value<span class=\"o\">=</span><span class=\"default_value\">''</span></em>, <em class=\"sig-param\">max_age<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">expires<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">path<span class=\"o\">=</span><span class=\"default_value\">'/'</span></em>, <em class=\"sig-param\">domain<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">secure<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">httponly<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">samesite<span class=\"o\">=</span><span class=\"default_value\">None</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>Sets a cookie. The parameters are the same as in the\n<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\">Morsel</code></a> cookie object in the Python standard library.</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\">max_age</code> should be a <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\">timedelta</code></a> object, an integer\nnumber of seconds, or <code class=\"docutils literal notranslate\">None</code> (default) if the cookie should last only\nas long as the client's browser session. If <code class=\"docutils literal notranslate\">expires</code> is not specified,\nit will be calculated.</p>\n<aside class=\"version-note version-changed\" data-version=\"4.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 4.1</p><p>Support for <code class=\"docutils literal notranslate\">timedelta</code> objects was added.</p>\n</aside>\n</li>\n<li><p><code class=\"docutils literal notranslate\">expires</code> should either be a string in the format\n<code class=\"docutils literal notranslate\">&quot;Wdy, DD-Mon-YY HH:MM:SS GMT&quot;</code> or a <code class=\"docutils literal notranslate\">datetime.datetime</code> object\nin UTC. If <code class=\"docutils literal notranslate\">expires</code> is a <code class=\"docutils literal notranslate\">datetime</code> object, the <code class=\"docutils literal notranslate\">max_age</code>\nwill be calculated.</p></li>\n<li><p>Use <code class=\"docutils literal notranslate\">domain</code> if you want to set a cross-domain cookie. For example,\n<code class=\"docutils literal notranslate\">domain=&quot;example.com&quot;</code> will set a cookie that is readable by the\ndomains www.example.com, blog.example.com, etc. Otherwise, a cookie will\nonly be readable by the domain that set it.</p></li>\n<li><p>Use <code class=\"docutils literal notranslate\">secure=True</code> if you want the cookie to be only sent to the server\nwhen a request is made with the <code class=\"docutils literal notranslate\">https</code> scheme.</p></li>\n<li><p>Use <code class=\"docutils literal notranslate\">httponly=True</code> if you want to prevent client-side\nJavaScript from having access to the cookie.</p>\n<p><a class=\"reference external\" href=\"https://owasp.org/www-community/HttpOnly\">HttpOnly</a> is a flag included in a Set-Cookie HTTP response header. It's\npart of the <span class=\"target\" id=\"index-6\"></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> standard for cookies\nand can be a useful way to mitigate the risk of a client-side script\naccessing the protected cookie data.</p>\n</li>\n<li><p>Use <code class=\"docutils literal notranslate\">samesite='Strict'</code> or <code class=\"docutils literal notranslate\">samesite='Lax'</code> to tell the browser not\nto send this cookie when performing a cross-origin request. <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\">SameSite</a>\nisn't supported by all browsers, so it's not a replacement for Django's\nCSRF protection, but rather a defense in depth measure.</p>\n<p>Use <code class=\"docutils literal notranslate\">samesite='None'</code> (string) to explicitly state that this cookie is\nsent with all same-site and cross-site requests.</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-7\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc6265.html#section-6.1\"><strong>RFC 6265</strong></a> states that user agents should\nsupport cookies of at least 4096 bytes. For many browsers this is also\nthe maximum size. Django will not raise an exception if there's an\nattempt to store a cookie of more than 4096 bytes, but many browsers\nwill not set the cookie correctly.</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\">HttpResponse.</span><span class=\"sig-name descname\">set_signed_cookie</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">value</em>, <em class=\"sig-param\">salt<span class=\"o\">=</span><span class=\"default_value\">''</span></em>, <em class=\"sig-param\">max_age<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">expires<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">path<span class=\"o\">=</span><span class=\"default_value\">'/'</span></em>, <em class=\"sig-param\">domain<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">secure<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">httponly<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">samesite<span class=\"o\">=</span><span class=\"default_value\">None</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\">set_cookie()</code></a>, but\n<a class=\"reference internal\" href=\"/ja/4.1/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\">HttpRequest.get_signed_cookie()</code></a>.\nYou can use the optional <code class=\"docutils literal notranslate\">salt</code> argument for added key strength, but\nyou will need to remember to pass it to the 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\">HttpRequest.get_signed_cookie()</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\">HttpResponse.</span><span class=\"sig-name descname\">delete_cookie</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">key</em>, <em class=\"sig-param\">path<span class=\"o\">=</span><span class=\"default_value\">'/'</span></em>, <em class=\"sig-param\">domain<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\">samesite<span class=\"o\">=</span><span class=\"default_value\">None</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>Deletes the cookie with the given key. Fails silently if the key doesn't\nexist.</p>\n<p>Due to the way cookies work, <code class=\"docutils literal notranslate\">path</code> and <code class=\"docutils literal notranslate\">domain</code> should be the same\nvalues you used in <code class=\"docutils literal notranslate\">set_cookie()</code> -- otherwise the cookie may not be\ndeleted.</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\">HttpResponse.</span><span class=\"sig-name descname\">close</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>This method is called at the end of the request directly by the WSGI\nserver.</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\">HttpResponse.</span><span class=\"sig-name descname\">write</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">content</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>This method makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a file-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">flush</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>This method makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a file-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">tell</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>This method makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a file-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">getvalue</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>Returns the value of <a class=\"reference internal\" href=\"#django.http.HttpResponse.content\" title=\"django.http.HttpResponse.content\"><code class=\"xref py py-attr docutils literal notranslate\">HttpResponse.content</code></a>. This method makes\nan <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a stream-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">readable</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>Always <code class=\"docutils literal notranslate\">False</code>. This method makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a\nstream-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">seekable</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>Always <code class=\"docutils literal notranslate\">False</code>. This method makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a\nstream-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">writable</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>Always <code class=\"docutils literal notranslate\">True</code>. This method makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a\nstream-like object.</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\">HttpResponse.</span><span class=\"sig-name descname\">writelines</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">lines</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>Writes a list of lines to the response. Line separators are not added. This\nmethod makes an <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> instance a stream-like object.</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\">HttpResponse</code> subclasses<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 includes a number of <code class=\"docutils literal notranslate\">HttpResponse</code> subclasses that handle different\ntypes of HTTP responses. Like <code class=\"docutils literal notranslate\">HttpResponse</code>, these subclasses live in\n<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\">django.http</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\">class</span> </em><span class=\"sig-name descname\">HttpResponseRedirect</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>The first argument to the constructor is required -- the path to redirect\nto. This can be a fully qualified URL\n(e.g. <code class=\"docutils literal notranslate\">'https://www.yahoo.com/search/'</code>), an absolute path with no domain\n(e.g. <code class=\"docutils literal notranslate\">'/search/'</code>), or even a relative path (e.g. <code class=\"docutils literal notranslate\">'search/'</code>). In that\nlast case, the client browser will reconstruct the full URL itself\naccording to the current path. See <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> for other optional\nconstructor arguments. Note that this returns an HTTP status code 302.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponseRedirect.url\">\n<span class=\"sig-name descname\">url</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>This read-only attribute represents the URL the response will redirect\nto (equivalent to the <code class=\"docutils literal notranslate\">Location</code> response header).</p>\n</dd></dl>\n\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\">class</span> </em><span class=\"sig-name descname\">HttpResponsePermanentRedirect</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>Like <a class=\"reference internal\" href=\"#django.http.HttpResponseRedirect\" title=\"django.http.HttpResponseRedirect\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponseRedirect</code></a>, but it returns a permanent redirect\n(HTTP status code 301) instead of a &quot;found&quot; redirect (status code 302).</p>\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\">class</span> </em><span class=\"sig-name descname\">HttpResponseNotModified</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>The constructor doesn't take any arguments and no content should be added\nto this response. Use this to designate that a page hasn't been modified\nsince the user's last request (status code 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\">class</span> </em><span class=\"sig-name descname\">HttpResponseBadRequest</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>Acts just like <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> but uses a 400 status code.</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\">class</span> </em><span class=\"sig-name descname\">HttpResponseNotFound</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>Acts just like <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> but uses a 404 status code.</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\">class</span> </em><span class=\"sig-name descname\">HttpResponseForbidden</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>Acts just like <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> but uses a 403 status code.</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\">class</span> </em><span class=\"sig-name descname\">HttpResponseNotAllowed</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>Like <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>, but uses a 405 status code. The first argument\nto the constructor is required: a list of permitted methods (e.g.\n<code class=\"docutils literal notranslate\">['GET', 'POST']</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\">class</span> </em><span class=\"sig-name descname\">HttpResponseGone</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>Acts just like <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> but uses a 410 status code.</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\">class</span> </em><span class=\"sig-name descname\">HttpResponseServerError</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>Acts just like <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> but uses a 500 status code.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">注釈</p>\n<p>If a custom subclass of <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> implements a <code class=\"docutils literal notranslate\">render</code>\nmethod, Django will treat it as emulating a\n<a class=\"reference internal\" href=\"/ja/4.1/ref/template-response/#django.template.response.SimpleTemplateResponse\" title=\"django.template.response.SimpleTemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\">SimpleTemplateResponse</code></a>, and the\n<code class=\"docutils literal notranslate\">render</code> method must itself return a valid response object.</p>\n</aside>\n<section id=\"custom-response-classes\">\n<h4>Custom response classes<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>If you find yourself needing a response class that Django doesn't provide, you\ncan create it with the help of <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\">http.HTTPStatus</code></a>. For example:</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=\"nn\">http</span> <span class=\"kn\">import</span> HTTPStatus\n<span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> HttpResponse\n\n<span class=\"k\">class</span> <span class=\"nc\">HttpResponseNoContent</span><span class=\"p\">(</span>HttpResponse<span class=\"p\">):</span>\n    status_code <span class=\"o\">=</span> HTTPStatus<span class=\"o\">.</span>NO_CONTENT\n</code></pre></div>\n</section>\n</section>\n</section>\n<section id=\"jsonresponse-objects\">\n<h2><code class=\"docutils literal notranslate\">JsonResponse</code> objects<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\">class</span> </em><span class=\"sig-name descname\">JsonResponse</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">data</em>, <em class=\"sig-param\">encoder<span class=\"o\">=</span><span class=\"default_value\">DjangoJSONEncoder</span></em>, <em class=\"sig-param\">safe<span class=\"o\">=</span><span class=\"default_value\">True</span></em>, <em class=\"sig-param\">json_dumps_params<span class=\"o\">=</span><span class=\"default_value\">None</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</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>An <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> subclass that helps to create a JSON-encoded\nresponse. It inherits most behavior from its superclass with a couple\ndifferences:</p>\n<p>Its default <code class=\"docutils literal notranslate\">Content-Type</code> header is set to <em class=\"mimetype\">application/json</em>.</p>\n<p>The first parameter, <code class=\"docutils literal notranslate\">data</code>, should be a <code class=\"docutils literal notranslate\">dict</code> instance. If the\n<code class=\"docutils literal notranslate\">safe</code> parameter is set to <code class=\"docutils literal notranslate\">False</code> (see below) it can be any\nJSON-serializable object.</p>\n<p>The <code class=\"docutils literal notranslate\">encoder</code>, which defaults to\n<a class=\"reference internal\" href=\"/ja/4.1/topics/serialization/#django.core.serializers.json.DjangoJSONEncoder\" title=\"django.core.serializers.json.DjangoJSONEncoder\"><code class=\"xref py py-class docutils literal notranslate\">django.core.serializers.json.DjangoJSONEncoder</code></a>, will be used to\nserialize the data. See <a class=\"reference internal\" href=\"/ja/4.1/topics/serialization/#serialization-formats-json\"><span class=\"std std-ref\">JSON serialization</span></a> for more details about this serializer.</p>\n<p>The <code class=\"docutils literal notranslate\">safe</code> boolean parameter defaults to <code class=\"docutils literal notranslate\">True</code>. If it's set to\n<code class=\"docutils literal notranslate\">False</code>, any object can be passed for serialization (otherwise only\n<code class=\"docutils literal notranslate\">dict</code> instances are allowed). If <code class=\"docutils literal notranslate\">safe</code> is <code class=\"docutils literal notranslate\">True</code> and a non-<code class=\"docutils literal notranslate\">dict</code>\nobject is passed as the first argument, a <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\">TypeError</code></a> will be raised.</p>\n<p>The <code class=\"docutils literal notranslate\">json_dumps_params</code> parameter is a dictionary of keyword arguments\nto pass to the <code class=\"docutils literal notranslate\">json.dumps()</code> call used to generate the response.</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>Typical usage could look like:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> JsonResponse\n<span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> JsonResponse<span class=\"p\">({</span><span class=\"s1\">&#39;foo&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;bar&#39;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>response<span class=\"o\">.</span>content\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>Serializing non-dictionary objects<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>In order to serialize objects other than <code class=\"docutils literal notranslate\">dict</code> you must set the <code class=\"docutils literal notranslate\">safe</code>\nparameter to <code class=\"docutils literal notranslate\">False</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> JsonResponse<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> safe<span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Without passing <code class=\"docutils literal notranslate\">safe=False</code>, a <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\">TypeError</code></a> will be raised.</p>\n<p>Note that an API based on <code class=\"docutils literal notranslate\">dict</code> objects is more extensible, flexible, and\nmakes it easier to maintain forwards compatibility. Therefore, you should avoid\nusing non-dict objects in JSON-encoded response.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">警告</p>\n<p>Before the <a class=\"reference external\" href=\"https://262.ecma-international.org/5.1/#sec-11.1.4\">5th edition of ECMAScript</a> it was possible to\npoison the JavaScript <code class=\"docutils literal notranslate\">Array</code> constructor. For this reason, Django does\nnot allow passing non-dict objects to the\n<a class=\"reference internal\" href=\"#django.http.JsonResponse\" title=\"django.http.JsonResponse\"><code class=\"xref py py-class docutils literal notranslate\">JsonResponse</code></a> constructor by default.  However, most\nmodern browsers implement ECMAScript 5 which removes this attack vector.\nTherefore it is possible to disable this security precaution.</p>\n</aside>\n</section>\n<section id=\"changing-the-default-json-encoder\">\n<h4>Changing the default JSON encoder<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>If you need to use a different JSON encoder class you can pass the <code class=\"docutils literal notranslate\">encoder</code>\nparameter to the constructor method:</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=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> JsonResponse<span class=\"p\">(</span>data<span class=\"p\">,</span> encoder<span class=\"o\">=</span>MyJSONEncoder<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\">StreamingHttpResponse</code> objects<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\">class</span> </em><span class=\"sig-name descname\">StreamingHttpResponse</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>The <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> class is used to stream a response from\nDjango to the browser. You might want to do this if generating the response\ntakes too long or uses too much memory. For instance, it's useful for\n<a class=\"reference internal\" href=\"/ja/4.1/howto/outputting-csv/#streaming-csv-files\"><span class=\"std std-ref\">generating large CSV files</span></a>.</p>\n<aside class=\"admonition-performance-considerations admonition\" role=\"note\">\n<p class=\"admonition-title\">Performance considerations</p>\n<p>Django is designed for short-lived requests. Streaming responses will tie\na worker process for the entire duration of the response. This may result\nin poor performance.</p>\n<p>Generally speaking, you should perform expensive tasks outside of the\nrequest-response cycle, rather than resorting to a streamed response.</p>\n</aside>\n<p>The <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> is not a subclass of <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>,\nbecause it features a slightly different API. However, it is almost identical,\nwith the following notable differences:</p>\n<ul class=\"simple\">\n<li><p>It should be given an iterator that yields bytestrings as content.</p></li>\n<li><p>You cannot access its content, except by iterating the response object\nitself. This should only occur when the response is returned to the client.</p></li>\n<li><p>It has no <code class=\"docutils literal notranslate\">content</code> attribute. Instead, it has a\n<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\">streaming_content</code></a> attribute.</p></li>\n<li><p>You cannot use the file-like object <code class=\"docutils literal notranslate\">tell()</code> or <code class=\"docutils literal notranslate\">write()</code> methods.\nDoing so will raise an exception.</p></li>\n</ul>\n<p><a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> should only be used in situations where it is\nabsolutely required that the whole content isn't iterated before transferring\nthe data to the client. Because the content can't be accessed, many\nmiddleware can't function normally. For example the <code class=\"docutils literal notranslate\">ETag</code> and\n<code class=\"docutils literal notranslate\">Content-Length</code> headers can't be generated for streaming responses.</p>\n<p>The <a class=\"reference internal\" href=\"#django.http.HttpResponseBase\" title=\"django.http.HttpResponseBase\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponseBase</code></a> base class is common between\n<a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> and <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</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\">StreamingHttpResponse.</span><span class=\"sig-name descname\">streaming_content</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>An iterator of the response content, bytestring encoded according to\n<a class=\"reference internal\" href=\"#django.http.HttpResponse.charset\" title=\"django.http.HttpResponse.charset\"><code class=\"xref py py-attr docutils literal notranslate\">HttpResponse.charset</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\">StreamingHttpResponse.</span><span class=\"sig-name descname\">status_code</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-14\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-6\"><strong>HTTP status code</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\">reason_phrase</code></a> が明示的にセットされていない限り、コンストラクタの外で <code class=\"docutils literal notranslate\">status_code</code> の値を変更すると``reason_phrase`` の値も変更されます。</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\">StreamingHttpResponse.</span><span class=\"sig-name descname\">reason_phrase</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>The HTTP reason phrase for the response. It uses the <span class=\"target\" id=\"index-9\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc7231.html#section-6.1\"><strong>HTTP standard's</strong></a> default reason phrases.</p>\n<p>Unless explicitly set, <code class=\"docutils literal notranslate\">reason_phrase</code> is determined by the value of\n<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\">status_code</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\">StreamingHttpResponse.</span><span class=\"sig-name descname\">streaming</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>This is always <code class=\"docutils literal notranslate\">True</code>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"fileresponse-objects\">\n<h2><code class=\"docutils literal notranslate\">FileResponse</code> objects<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\">class</span> </em><span class=\"sig-name descname\">FileResponse</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">open_file</em>, <em class=\"sig-param\">as_attachment<span class=\"o\">=</span><span class=\"default_value\">False</span></em>, <em class=\"sig-param\">filename<span class=\"o\">=</span><span class=\"default_value\">''</span></em>, <em class=\"sig-param\"><span class=\"o\">**</span>kwargs</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\">FileResponse</code></a> is a subclass of <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a>\noptimized for binary files. It uses <span class=\"target\" id=\"index-10\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/#optional-platform-specific-file-handling\"><strong>wsgi.file_wrapper</strong></a> if provided by the wsgi\nserver, otherwise it streams the file out in small chunks.</p>\n<p>If <code class=\"docutils literal notranslate\">as_attachment=True</code>, the <code class=\"docutils literal notranslate\">Content-Disposition</code> header is set to\n<code class=\"docutils literal notranslate\">attachment</code>, which asks the browser to offer the file to the user as a\ndownload. Otherwise, a <code class=\"docutils literal notranslate\">Content-Disposition</code> header with a value of\n<code class=\"docutils literal notranslate\">inline</code> (the browser default) will be set only if a filename is\navailable.</p>\n<p>If <code class=\"docutils literal notranslate\">open_file</code> doesn't have a name or if the name of <code class=\"docutils literal notranslate\">open_file</code> isn't\nappropriate, provide a custom file name using the <code class=\"docutils literal notranslate\">filename</code>  parameter.\nNote that if you pass a file-like object like <code class=\"docutils literal notranslate\">io.BytesIO</code>, it's your\ntask to <code class=\"docutils literal notranslate\">seek()</code> it before passing it to <code class=\"docutils literal notranslate\">FileResponse</code>.</p>\n<p>The <code class=\"docutils literal notranslate\">Content-Length</code> and <code class=\"docutils literal notranslate\">Content-Type</code> headers are automatically set\nwhen they can be guessed from contents of <code class=\"docutils literal notranslate\">open_file</code>.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">FileResponse</code> accepts any file-like object with binary content, for example\na file open in binary mode like so:</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=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"nn\">django.http</span> <span class=\"kn\">import</span> FileResponse\n<span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> FileResponse<span class=\"p\">(</span><span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s1\">&#39;myfile.png&#39;</span><span class=\"p\">,</span> <span class=\"s1\">&#39;rb&#39;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>The file will be closed automatically, so don't open it with a context manager.</p>\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\">FileResponse.</span><span class=\"sig-name descname\">set_headers</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">open_file</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>This method is automatically called during the response initialization and\nset various headers (<code class=\"docutils literal notranslate\">Content-Length</code>, <code class=\"docutils literal notranslate\">Content-Type</code>, and\n<code class=\"docutils literal notranslate\">Content-Disposition</code>) depending on <code class=\"docutils literal notranslate\">open_file</code>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"httpresponsebase-class\">\n<h2><code class=\"docutils literal notranslate\">HttpResponseBase</code> class<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\">class</span> </em><span class=\"sig-name descname\">HttpResponseBase</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>The <a class=\"reference internal\" href=\"#django.http.HttpResponseBase\" title=\"django.http.HttpResponseBase\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponseBase</code></a> class is common to all Django responses.\nIt should not be used to create responses directly, but it can be\nuseful for type-checking.</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":"Telling the browser to treat the response as a file attachment","anchor":"telling-the-browser-to-treat-the-response-as-a-file-attachment","children":[]}]},{"title":"属性","anchor":"id3","children":[]},{"title":"メソッド","anchor":"id4","children":[]},{"title":"HttpResponse subclasses","anchor":"httpresponse-subclasses","children":[{"title":"Custom response classes","anchor":"custom-response-classes","children":[]}]}]},{"title":"JsonResponse objects","anchor":"jsonresponse-objects","children":[{"title":"使い方","anchor":"id5","children":[{"title":"Serializing non-dictionary objects","anchor":"serializing-non-dictionary-objects","children":[]},{"title":"Changing the default JSON encoder","anchor":"changing-the-default-json-encoder","children":[]}]}]},{"title":"StreamingHttpResponse objects","anchor":"streaminghttpresponse-objects","children":[{"title":"属性","anchor":"id6","children":[]}]},{"title":"FileResponse objects","anchor":"fileresponse-objects","children":[{"title":"メソッド","anchor":"id7","children":[]}]},{"title":"HttpResponseBase class","anchor":"httpresponsebase-class","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API Reference","url":"/ja/4.1/ref/"}],"prev":{"docname":"ref/paginator","title":"Paginator","url":"/ja/4.1/ref/paginator/"},"next":{"docname":"ref/schema-editor","title":"SchemaEditor","url":"/ja/4.1/ref/schema-editor/"},"formats":{"html":"/ja/4.1/ref/request-response/","markdown":"/ja/4.1/ref/request-response.md","json":"/ja/4.1/ref/request-response.json"},"source":"https://github.com/django/django/blob/stable/4.1.x/docs/ref/request-response.txt","official":"https://docs.djangoproject.com/ja/4.1/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","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}