{"title":"Objekt för begäran och svar","version":"6.1","locale":"sv","docname":"ref/request-response","url":"/sv/6.1/ref/request-response/","canonical":"https://djangodocs.dev/sv/6.1/ref/request-response/","summary":"Django använder request- och response-objekt för att skicka tillstånd genom systemet.","html":"<span id=\"request-and-response-objects\"></span><h1>Objekt för begäran och svar<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>Snabb översikt<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 använder request- och response-objekt för att skicka tillstånd genom systemet.</p>\n<p>När en sida begärs skapar Django ett <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a>-objekt som innehåller metadata om begäran. Sedan laddar Django den lämpliga vyn och skickar <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> som första argument till view-funktionen. Varje vy är ansvarig för att returnera ett <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-objekt.</p>\n<p>Detta dokument förklarar API:erna för objekten <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a> och <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>, som definieras i modulen <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>-objekt<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>Attribut<a class=\"heading-anchor\" href=\"#attributes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Alla attribut ska betraktas som skrivskyddade, om inget annat anges.</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>En sträng som representerar schemat för begäran (vanligtvis <code class=\"docutils literal notranslate\">http</code> eller <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>Den råa HTTP-begärans kropp som en bytestring. Detta är användbart för att bearbeta data på andra sätt än konventionella HTML-formulär: binära bilder, XML-nyttolast etc. För bearbetning av konventionella formulärdata, använd <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>Du kan också läsa från en <code class=\"docutils literal notranslate\">HttpRequest</code> med hjälp av ett filliknande gränssnitt med <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> eller <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>. Om du kommer åt attributet <code class=\"docutils literal notranslate\">body</code> <em>efter</em> att du har läst begäran med någon av dessa I/O-strömmetoder kommer du att få ett <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>En sträng som representerar den fullständiga sökvägen till den begärda sidan, exklusive schema, domän eller frågesträng.</p>\n<p>Exempel: <code class=\"docutils literal notranslate\">&quot;/musik/band/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>I vissa webbserverkonfigurationer delas den del av URL:en som följer efter värdnamnet upp i en del med skriptprefix och en del med sökvägsinformation. Attributet <code class=\"docutils literal notranslate\">path_info</code> innehåller alltid sökvägsinformationsdelen av sökvägen, oavsett vilken webbserver som används. Om du använder detta istället för <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> kan din kod bli enklare att flytta mellan test- och distributionsservrar.</p>\n<p>Om till exempel <code class=\"docutils literal notranslate\">WSGIScriptAlias</code> för din applikation är inställd på <code class=\"docutils literal notranslate\">&quot;/minfo&quot;</code>, kan <code class=\"docutils literal notranslate\">path</code> vara <code class=\"docutils literal notranslate\">&quot;/minfo/music/bands/the_beatles/&quot;</code> och <code class=\"docutils literal notranslate\">path_info</code> skulle vara <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>En sträng som representerar den HTTP-metod som används i begäran. Detta är garanterat versaler. Till exempel:</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=\"s2\">&quot;GET&quot;</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=\"s2\">&quot;POST&quot;</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>En sträng som representerar den aktuella kodning som används för att avkoda data från formuläret (eller <code class=\"docutils literal notranslate\">None</code>, vilket innebär att inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a> används). Du kan skriva till detta attribut för att ändra den kodning som används vid åtkomst till formulärdata. Alla efterföljande attributåtkomster (t.ex. läsning från <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> eller <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>) kommer att använda det nya <code class=\"docutils literal notranslate\">encoding</code>-värdet. Användbart om du vet att formulärdata inte är i <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a>-kodningen.</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>En sträng som representerar MIME-typen för begäran, hämtad från rubriken <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>En ordbok med nyckel-/värdeparametrar som ingår i rubriken <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>Ett ordboksliknande objekt som innehåller alla givna HTTP GET-parametrar. Se <a class=\"reference internal\" href=\"#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\">QueryDict</code></a>-dokumentationen nedan.</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>Ett ordboksliknande objekt som innehåller alla angivna HTTP POST-parametrar, förutsatt att begäran innehåller formulärdata. Se dokumentationen för <a class=\"reference internal\" href=\"#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\">QueryDict</code></a> nedan. Om du behöver komma åt rådata eller data som inte är formulärdata som skickas i begäran, kan du komma åt detta via attributet <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> istället.</p>\n<p>Det är möjligt att en begäran kan komma in via POST med en tom <code class=\"docutils literal notranslate\">POST</code>-ordbok - om, säg, ett formulär begärs via POST HTTP-metoden men inte innehåller formulärdata. Därför bör du inte använda <code class=\"docutils literal notranslate\">if request.POST</code> för att kontrollera om POST-metoden används; använd istället <code class=\"docutils literal notranslate\">if request.method == &quot;POST&quot;</code> (se <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> innehåller <em>inte</em> information om filuppladdning. Se <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>En ordbok som innehåller alla cookies. Nycklar och värden är strängar.</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>Ett ordboksliknande objekt som innehåller alla uppladdade filer. Varje nyckel i <code class=\"docutils literal notranslate\">FILES</code> är <code class=\"docutils literal notranslate\">namnet</code> från <code class=\"docutils literal notranslate\">&lt;input type=&quot;file&quot; name=&quot;&quot;&gt;</code>. Varje värde i <code class=\"docutils literal notranslate\">FILES</code> är en <a class=\"reference internal\" href=\"/sv/6.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>Se <a class=\"reference internal\" href=\"/sv/6.1/topics/files/\"><span class=\"doc\">Hantera filer</span></a> för mer information.</p>\n<p><code class=\"docutils literal notranslate\">FILES</code> kommer endast att innehålla data om förfrågningsmetoden var POST och <code class=\"docutils literal notranslate\">&lt;form&gt;</code> som skickade till förfrågan hade <code class=\"docutils literal notranslate\">enctype=&quot;multipart/form-data&quot;</code>. Annars kommer <code class=\"docutils literal notranslate\">FILES</code> att vara ett tomt ordboksliknande objekt.</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>En ordbok som innehåller alla tillgängliga HTTP-rubriker. Vilka headers som finns beror på klient och server, men här är några exempel:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\">CONTENT_LENGTH</code> – Längden på begäran (som en sträng).</p></li>\n<li><p><code class=\"docutils literal notranslate\">CONTENT_TYPE</code> – MIME-typen för förfrågningsunderlaget.</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_ACCEPT</code> – Acceptabla innehållstyper för svaret.</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_ACCEPT_ENCODING</code> – Godtagbara kodningar för svaret.</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_ACCEPT_LANGUAGE</code> – Godtagbara språk för svaret.</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_HOST</code> – HTTP-värdhuvudet som skickas av klienten.</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_REFERER</code> – Hänvisningssidan, om sådan finns.</p></li>\n<li><p><code class=\"docutils literal notranslate\">HTTP_USER_AGENT</code> – Klientens user-agent-sträng.</p></li>\n<li><p><code class=\"docutils literal notranslate\">QUERY_STRING</code> – Frågesträngen, som en enda (oanalyserad) sträng.</p></li>\n<li><p><code class=\"docutils literal notranslate\">REMOTE_ADDR</code> – Klientens IP-adress.</p></li>\n<li><p><code class=\"docutils literal notranslate\">REMOTE_HOST</code> – Klientens värdnamn.</p></li>\n<li><p><code class=\"docutils literal notranslate\">REMOTE_USER</code> – Den användare som autentiserats av webbservern, om sådan finns.</p></li>\n<li><p><code class=\"docutils literal notranslate\">REQUEST_METHOD</code> – En sträng som till exempel <code class=\"docutils literal notranslate\">&quot;GET&quot;</code> eller <code class=\"docutils literal notranslate\">&quot;POST&quot;</code>.</p></li>\n<li><p><code class=\"docutils literal notranslate\">SERVER_NAME</code> – Värdnamnet på servern.</p></li>\n<li><p><code class=\"docutils literal notranslate\">SERVER_PORT</code> – Serverns port (som en sträng).</p></li>\n</ul>\n<p>Med undantag för <code class=\"docutils literal notranslate\">CONTENT_LENGTH</code> och <code class=\"docutils literal notranslate\">CONTENT_TYPE</code>, som anges ovan, konverteras alla HTTP-rubriker i begäran till <code class=\"docutils literal notranslate\">META</code>-nycklar genom att konvertera alla tecken till versaler, ersätta eventuella bindestreck med understreck och lägga till ett <code class=\"docutils literal notranslate\">HTTP_</code>-prefix till namnet. Så till exempel skulle en header som heter <code class=\"docutils literal notranslate\">X-Bender</code> mappas till <code class=\"docutils literal notranslate\">META</code>-nyckeln <code class=\"docutils literal notranslate\">HTTP_X_BENDER</code>.</p>\n<p>Observera att <a class=\"reference internal\" href=\"/sv/6.1/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\">runserver</code></a> tar bort alla headers med understreck i namnet, så du kommer inte att se dem i <code class=\"docutils literal notranslate\">META</code>. Detta förhindrar header-spoofing baserat på tvetydighet mellan understreck och bindestreck som båda normaliseras till understreck i WSGI-miljövariabler. Det matchar beteendet hos webbservrar som Nginx och 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> är ett enklare sätt att komma åt alla HTTP-prefixerade headers, plus <code class=\"docutils literal notranslate\">CONTENT_LENGTH</code> och <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>Ett diktliknande objekt utan skiftlägeskänslighet som ger tillgång till alla HTTP-prefixerade rubriker (plus <code class=\"docutils literal notranslate\">Content-Length</code> och <code class=\"docutils literal notranslate\">Content-Type</code>) från begäran.</p>\n<p>Namnet på varje rubrik stiliseras med title-casing (t.ex. <code class=\"docutils literal notranslate\">User-Agent</code>) när den visas. Du kan komma åt rubrikerna utan hänsyn till versaler:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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=\"s2\">&quot;User-Agent&quot;</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=\"s2\">&quot;user-agent&quot;</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=\"s2\">&quot;User-Agent&quot;</span><span class=\"p\">]</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>headers<span class=\"p\">[</span><span class=\"s2\">&quot;user-agent&quot;</span><span class=\"p\">]</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>headers<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"s2\">&quot;User-Agent&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>headers<span class=\"o\">.</span>get<span class=\"p\">(</span><span class=\"s2\">&quot;user-agent&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)</span>\n</code></pre></div>\n<p>För användning i t.ex. Django-mallar kan rubriker också sökas upp med hjälp av understrykningar i stället för bindestreck:</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"cp\">{{</span> <span class=\"nv\">request.headers.user_agent</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.resolver_match\">\n<span class=\"sig-prename descclassname\">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>En instans av <a class=\"reference internal\" href=\"/sv/6.1/ref/urlresolvers/#django.urls.ResolverMatch\" title=\"django.urls.ResolverMatch\"><code class=\"xref py py-class docutils literal notranslate\">ResolverMatch</code></a> som representerar den upplösta URL:en. Detta attribut anges endast efter att URL-lösningen har ägt rum, vilket innebär att det är tillgängligt i alla vyer men inte i mellanprogram som körs innan URL-lösningen äger rum (du kan dock använda det i <a class=\"reference internal\" href=\"/sv/6.1/topics/http/middleware/#process_view\" title=\"process_view\"><code class=\"xref py py-meth docutils literal notranslate\">process_view()</code></a>).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.multipart_parser_class\">\n<span class=\"sig-prename descclassname\">HttpRequest.</span><span class=\"sig-name descname\">multipart_parser_class</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.multipart_parser_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><aside class=\"version-note version-added\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>Klassen som används för att tolka begärandedata av typen <code class=\"docutils literal notranslate\">multipart/form-data</code>. Som standard är detta <code class=\"docutils literal notranslate\">django.http.multipartparser.MultiPartParser</code>.</p>\n<p>Du kan ange det här attributet för att använda en anpassad multipart-tolk, antingen via mellanprogram eller direkt i vyer:</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\">django.http.multipartparser</span> <span class=\"kn\">import</span> MultiPartParser\n\n\n<span class=\"k\">class</span> <span class=\"nc\">CustomMultiPartParser</span><span class=\"p\">(</span>MultiPartParser<span class=\"p\">):</span>\n    <span class=\"k\">def</span> <span class=\"nf\">parse</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        post <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span>mutable<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n        files <span class=\"o\">=</span> MultiValueDict<span class=\"p\">()</span>\n        <span class=\"c1\"># Custom processing logic here</span>\n        <span class=\"k\">return</span> post<span class=\"p\">,</span> files\n\n\n<span class=\"c1\"># In middleware or view:</span>\nrequest<span class=\"o\">.</span>multipart_parser_class <span class=\"o\">=</span> CustomMultiPartParser\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"attributes-set-by-application-code\">\n<h3>Attribut som ställs in av applikationskoden<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 ställer inte in dessa attribut själv, men använder dem om de ställs in av din applikation.</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>Malltaggen <a class=\"reference internal\" href=\"/sv/6.1/ref/templates/builtins/#std-templatetag-url\"><code class=\"xref std std-ttag docutils literal notranslate\">url</code></a> använder dess värde som argumentet <code class=\"docutils literal notranslate\">current_app</code> till <a class=\"reference internal\" href=\"/sv/6.1/ref/urlresolvers/#django.urls.reverse\" title=\"django.urls.reverse\"><code class=\"xref py py-func docutils literal notranslate\">reverse()</code></a>.</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>Detta kommer att användas som rot-URLconf för den aktuella begäran och åsidosätter inställningen <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-ROOT_URLCONF\"><code class=\"xref std std-setting docutils literal notranslate\">ROOT_URLCONF</code></a>. Se <a class=\"reference internal\" href=\"/sv/6.1/topics/http/urls/#how-django-processes-a-request\"><span class=\"std std-ref\">Hur Django behandlar en förfrågan</span></a> för detaljer.</p>\n<p><code class=\"docutils literal notranslate\">urlconf</code> kan sättas till <code class=\"docutils literal notranslate\">None</code> för att återställa alla ändringar som gjorts av tidigare middleware och återgå till att använda <a class=\"reference internal\" href=\"/sv/6.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>Detta kommer att användas istället för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_EXCEPTION_REPORTER_FILTER\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_EXCEPTION_REPORTER_FILTER</code></a> för den aktuella begäran. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">Anpassade felrapporter</span></a> för detaljer.</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>Detta kommer att användas i stället för <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_EXCEPTION_REPORTER\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_EXCEPTION_REPORTER</code></a> för den aktuella begäran. Se <a class=\"reference internal\" href=\"/sv/6.1/howto/error-reporting/#custom-error-reports\"><span class=\"std std-ref\">Anpassade felrapporter</span></a> för detaljer.</p>\n</dd></dl>\n\n</section>\n<section id=\"attributes-set-by-middleware\">\n<h3>Attribut som ställs in av mellanprogram<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>Vissa av de mellanprogram som ingår i Djangos Contrib-appar ställer in attribut på begäran. Om du inte ser attributet på en begäran, se till att lämplig middleware-klass är listad i <a class=\"reference internal\" href=\"/sv/6.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>Från <a class=\"reference internal\" href=\"/sv/6.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>: Ett läsbart och skrivbart, ordboksliknande objekt som representerar den aktuella sessionen.</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>Från <a class=\"reference internal\" href=\"/sv/6.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>: En instans av <a class=\"reference internal\" href=\"/sv/6.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> eller <a class=\"reference internal\" href=\"/sv/6.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> som returneras av <a class=\"reference internal\" href=\"/sv/6.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> och representerar den aktuella webbplatsen.</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>Från <a class=\"reference internal\" href=\"/sv/6.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>: En instans av <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\">AUTH_USER_MODEL</code></a> som representerar den användare som för närvarande är inloggad. Om användaren inte är inloggad för närvarande kommer <code class=\"docutils literal notranslate\">user</code> att sättas till en instans av <a class=\"reference internal\" href=\"/sv/6.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>. Du kan skilja dem åt med <a class=\"reference internal\" href=\"/sv/6.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>, så här:</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<p><a class=\"reference internal\" href=\"#django.http.HttpRequest.auser\" title=\"django.http.HttpRequest.auser\"><code class=\"xref py py-meth docutils literal notranslate\">auser()</code></a> kan användas för att komma åt användaren i asynkrona sammanhang.</p>\n</dd></dl>\n\n</section>\n<section id=\"methods\">\n<h3>Metoder<a class=\"heading-anchor\" href=\"#methods\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.auser\">\n<span class=\"sig-prename descclassname\">HttpRequest.</span><span class=\"sig-name descname\">auser</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.auser\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Från <a class=\"reference internal\" href=\"/sv/6.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>: Coroutine. Returnerar en instans av <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-AUTH_USER_MODEL\"><code class=\"xref std std-setting docutils literal notranslate\">AUTH_USER_MODEL</code></a> som representerar den användare som för närvarande är inloggad. Om användaren inte är inloggad för närvarande kommer <code class=\"docutils literal notranslate\">auser</code> att returnera en instans av <a class=\"reference internal\" href=\"/sv/6.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>. Detta liknar attributet <a class=\"reference internal\" href=\"#django.http.HttpRequest.user\" title=\"django.http.HttpRequest.user\"><code class=\"xref py py-attr docutils literal notranslate\">user</code></a> men det fungerar i asynkrona sammanhang.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_host\">\n<span class=\"sig-prename descclassname\">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>Returnerar den ursprungliga värden för begäran med hjälp av information från rubrikerna <code class=\"docutils literal notranslate\">HTTP_X_FORWARDED_HOST</code> (om <code class=\"xref std std-setting docutils literal notranslate\">USE_X_FORWARDED_HOST`</code> är aktiverat) och <code class=\"docutils literal notranslate\">HTTP_HOST</code>, i den ordningen. Om de inte ger något värde använder metoden en kombination av <code class=\"docutils literal notranslate\">SERVER_NAME</code> och <code class=\"docutils literal notranslate\">SERVER_PORT</code> enligt <span class=\"target\" id=\"index-24\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/\"><strong>PEP 3333</strong></a>.</p>\n<p>Exempel: <code class=\"docutils literal notranslate\">&quot;127.0.0.1:8000&quot;</code></p>\n<p>Utlöser <code class=\"docutils literal notranslate\">django.core.exceptions.DisallowedHost</code> om värden inte finns i <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\">ALLOWED_HOSTS</code></a> eller domännamnet är ogiltigt enligt <span class=\"target\" id=\"index-25\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc1034.html\"><strong>RFC 1034</strong></a>/<span class=\"target\" id=\"index-26\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc1035.html\"><strong>1035</strong></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Metoden <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> misslyckas när värden finns bakom flera proxyservrar. En lösning är att använda middleware för att skriva om proxyhuvudena, som i följande exempel:</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=\"s2\">&quot;HTTP_X_FORWARDED_FOR&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;HTTP_X_FORWARDED_HOST&quot;</span><span class=\"p\">,</span>\n        <span class=\"s2\">&quot;HTTP_X_FORWARDED_SERVER&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">]</span>\n\n    <span class=\"k\">def</span> <span class=\"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=\"s2\">&quot;,&quot;</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=\"s2\">&quot;,&quot;</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>Den här middleware-komponenten bör placeras före all annan middleware som förlitar sig på värdet från <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> – till exempel <a class=\"reference internal\" href=\"/sv/6.1/ref/middleware/#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\">CommonMiddleware</code></a> eller <a class=\"reference internal\" href=\"/sv/6.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>Returnerar den ursprungliga porten för begäran med hjälp av information från variablerna <code class=\"docutils literal notranslate\">HTTP_X_FORWARDED_PORT</code> (om <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-USE_X_FORWARDED_PORT\"><code class=\"xref std std-setting docutils literal notranslate\">USE_X_FORWARDED_PORT</code></a> är aktiverat) och <code class=\"docutils literal notranslate\">SERVER_PORT</code> <code class=\"docutils literal notranslate\">META</code>, i den ordningen.</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>Returnerar ”sökvägen”, plus en bifogad frågesträng, om tillämpligt.</p>\n<p>Exempel: <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.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>Som <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>, men använder <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> istället för <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>Exempel: <code class=\"docutils literal notranslate\">&quot;/music/band/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>Returnerar den absoluta URI-formen av <code class=\"docutils literal notranslate\">placering</code>. Om ingen plats anges kommer platsen att sättas till <code class=\"docutils literal notranslate\">request.get_full_path()</code>.</p>\n<p>Om platsen redan är en absolut URI kommer den inte att ändras. I annat fall byggs den absoluta URI:n upp med hjälp av de servervariabler som finns tillgängliga i denna begäran. Exempelvis:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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=\"s2\">&quot;/bands/&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;https://example.com/bands/&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>build_absolute_uri<span class=\"p\">(</span><span class=\"s2\">&quot;https://example2.com/bands/&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;https://example2.com/bands/&#39;</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Det avråds från att blanda HTTP och HTTPS på samma webbplats, därför genererar <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> alltid en absolut URI med samma schema som den aktuella begäran har. Om du behöver omdirigera användare till HTTPS är det bäst att låta webbservern omdirigera all HTTP-trafik till 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>Returnerar ett cookie-värde för en signerad cookie, eller ger upphov till ett <code class=\"docutils literal notranslate\">django.core.signing.BadSignature</code> undantag om signaturen inte längre är giltig. Om du anger argumentet <code class=\"docutils literal notranslate\">default</code> kommer undantaget att undertryckas och standardvärdet kommer att returneras istället.</p>\n<p>Det valfria argumentet <code class=\"docutils literal notranslate\">salt</code> kan användas för att placera kakan i ett separat namnutrymme för signaturer. Om det anges kontrolleras argumentet <code class=\"docutils literal notranslate\">max_age</code> mot den signerade tidsstämpeln som är kopplad till kakans värde, så att kakan inte är äldre än <code class=\"docutils literal notranslate\">max_age</code> sekunder.</p>\n<p>Kakor som signerats av äldre Django-versioner accepteras som standard för bakåtkompatibilitet. Sätt <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-SIGNED_COOKIE_LEGACY_SALT_FALLBACK\"><code class=\"xref std std-setting docutils literal notranslate\">SIGNED_COOKIE_LEGACY_SALT_FALLBACK</code></a> till <code class=\"docutils literal notranslate\">False</code> för att avvisa dem.</p>\n<p>Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;Tony&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> salt<span class=\"o\">=</span><span class=\"s2\">&quot;name-salt&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;Tony&#39; # assuming cookie was set using the same salt</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;nonexistent-cookie&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">KeyError: &#39;nonexistent-cookie&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;nonexistent-cookie&quot;</span><span class=\"p\">,</span> <span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;cookie-that-was-tampered-with&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">BadSignature: ...</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">,</span> max_age<span class=\"o\">=</span><span class=\"mi\">60</span><span class=\"p\">)</span>\n<span class=\"go\">SignatureExpired: Signature age 1677.3839159 &gt; 60 seconds</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_signed_cookie<span class=\"p\">(</span><span class=\"s2\">&quot;name&quot;</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>Se <a class=\"reference internal\" href=\"/sv/6.1/topics/signing/\"><span class=\"doc\">kryptografisk signering</span></a> för mer information.</p>\n<aside class=\"version-note version-changed\" data-version=\"5.2.15\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 5.2.15</p><p>I äldre versioner kunde kakor signerade med olika par av <code class=\"docutils literal notranslate\">(key, salt)</code> som sammanfogades till samma sträng användas utbytbart.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.is_secure\">\n<span class=\"sig-prename descclassname\">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>Returnerar <code class=\"docutils literal notranslate\">True</code> om begäran är säker, det vill säga om den gjordes med HTTPS.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.get_preferred_type\">\n<span class=\"sig-prename descclassname\">HttpRequest.</span><span class=\"sig-name descname\">get_preferred_type</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">media_types</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.http.HttpRequest.get_preferred_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar den föredragna mimetypen från <code class=\"docutils literal notranslate\">media_types</code>, baserat på <code class=\"docutils literal notranslate\">Accept</code>-huvudet, eller <code class=\"docutils literal notranslate\">None</code> om klienten inte accepterar någon av de angivna typerna.</p>\n<p>Anta att klienten skickar en <code class=\"docutils literal notranslate\">Accept</code> header av <code class=\"docutils literal notranslate\">text/html,application/json;q=0.8</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_preferred_type<span class=\"p\">([</span><span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;application/json&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&quot;text/html&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_preferred_type<span class=\"p\">([</span><span class=\"s2\">&quot;application/json&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/plain&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">&quot;application/json&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_preferred_type<span class=\"p\">([</span><span class=\"s2\">&quot;application/xml&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;text/plain&quot;</span><span class=\"p\">])</span>\n<span class=\"go\">None</span>\n</code></pre></div>\n<p>Om mimetypen innehåller parametrar beaktas även dessa när den föredragna mediatypen bestäms. Till exempel:, med en <code class=\"docutils literal notranslate\">Accept</code> header av <code class=\"docutils literal notranslate\">text/vcard;version=3.0,text/html;q=0.5</code>, returvärdet av <code class=\"docutils literal notranslate\">request.get_preferred_type()</code> beror på de tillgängliga mediatyperna:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_preferred_type<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=4.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=3.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/directory&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">]</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&quot;text/vcard; version=3.0&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_preferred_type<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=4.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">]</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">&quot;text/html&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>get_preferred_type<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    <span class=\"p\">[</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard; version=4.0&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/vcard&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;text/directory&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">]</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n<span class=\"go\">None</span>\n</code></pre></div>\n<p>(För ytterligare information om hur innehållsförhandling utförs, se <span class=\"target\" id=\"index-27\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-12.5.1\"><strong>RFC 9110 Section 12.5.1</strong></a>)</p>\n<p>De flesta webbläsare skickar <code class=\"docutils literal notranslate\">Accept: */*</code> som standard, vilket innebär att de inte har någon preferens, i vilket fall det första objektet i <code class=\"docutils literal notranslate\">media_types</code> skulle returneras.</p>\n<p>Att ange ett explicit <code class=\"docutils literal notranslate\">Accept</code>-huvud i API-förfrågningar kan vara användbart för att returnera en annan innehållstyp endast för dessa konsumenter. Se <a class=\"reference internal\" href=\"/sv/6.1/topics/class-based-views/generic-editing/#content-negotiation-example\"><span class=\"std std-ref\">Exempel på förhandling om innehåll</span></a> för ett exempel på returnering av olika innehåll baserat på <code class=\"docutils literal notranslate\">Accept</code>-headern.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Om ett svar varierar beroende på innehållet i rubriken <code class=\"docutils literal notranslate\">Accept</code> och du använder någon form av cachning som Djangos <a class=\"reference internal\" href=\"/sv/6.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>, bör du dekorera vyn med <a class=\"reference internal\" href=\"/sv/6.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> så att svaren cachas korrekt.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpRequest.accepts\">\n<span class=\"sig-prename descclassname\">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>Returnerar <code class=\"docutils literal notranslate\">True</code> om begäran <code class=\"docutils literal notranslate\">Accept</code> header matchar <code class=\"docutils literal notranslate\">mime_type</code> argumentet:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>request<span class=\"o\">.</span>accepts<span class=\"p\">(</span><span class=\"s2\">&quot;text/html&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">True</span>\n</code></pre></div>\n<p>De flesta webbläsare skickar <code class=\"docutils literal notranslate\">Accept: */*</code> som standard, så detta skulle returnera <code class=\"docutils literal notranslate\">True</code> för alla innehållstyper.</p>\n<p>Se <a class=\"reference internal\" href=\"/sv/6.1/topics/class-based-views/generic-editing/#content-negotiation-example\"><span class=\"std std-ref\">Exempel på förhandling om innehåll</span></a> för ett exempel på hur man använder <code class=\"docutils literal notranslate\">accepts()</code> för att returnera olika innehåll baserat på <code class=\"docutils literal notranslate\">Accept</code>-huvudet.</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>Metoder som implementerar ett filliknande gränssnitt för att läsa från en <code class=\"docutils literal notranslate\">HttpRequest</code>-instans. Detta gör det möjligt att konsumera en inkommande begäran på ett strömmande sätt. Ett vanligt användningsfall skulle vara att bearbeta en stor XML-nyttolast med en iterativ parser utan att konstruera ett helt XML-träd i minnet.</p>\n<p>Givet detta standardgränssnitt kan en <code class=\"docutils literal notranslate\">HttpRequest</code>-instans skickas direkt till en XML-parser som <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\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>-objekt<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>I ett <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a>-objekt är attributen <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> och <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> instanser av <code class=\"docutils literal notranslate\">django.http.QueryDict</code>, en ordboksliknande klass som är anpassad för att hantera flera värden för samma nyckel. Detta är nödvändigt eftersom vissa HTML-formulärelement, särskilt <code class=\"docutils literal notranslate\">&lt;select multiple&gt;</code>, skickar flera värden för samma nyckel.</p>\n<p>De <code class=\"docutils literal notranslate\">QueryDict</code> s på <code class=\"docutils literal notranslate\">request.POST</code> och <code class=\"docutils literal notranslate\">request.GET</code> kommer att vara oföränderliga när de nås i en normal begäran / svarscykel. För att få en föränderlig version måste du använda <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>Metoder<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> implementerar alla standardmetoder för ordböcker eftersom det är en underklass till dictionary. Undantag beskrivs här:</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>Instansierar ett <code class=\"docutils literal notranslate\">QueryDict</code>-objekt baserat på <code class=\"docutils literal notranslate\">query_string</code>.</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;c=3&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QueryDict: {&#39;a&#39;: [&#39;1&#39;, &#39;2&#39;], &#39;c&#39;: [&#39;3&#39;]}&gt;</span>\n</code></pre></div>\n<p>Om <code class=\"docutils literal notranslate\">query_string</code> inte skickas in kommer den resulterande <code class=\"docutils literal notranslate\">QueryDict</code> att vara tom (den kommer inte att ha några nycklar eller värden).</p>\n<p>De flesta <code class=\"docutils literal notranslate\">QueryDict</code> du stöter på, och i synnerhet de vid <code class=\"docutils literal notranslate\">request.POST</code> och <code class=\"docutils literal notranslate\">request.GET</code>, kommer att vara oföränderliga. Om du instansierar en själv kan du göra den mutabel genom att skicka <code class=\"docutils literal notranslate\">mutable=True</code> till dess <code class=\"docutils literal notranslate\">__init__()</code>.</p>\n<p>Strängar för inställning av både nycklar och värden konverteras från <code class=\"docutils literal notranslate\">encoding</code> till <code class=\"docutils literal notranslate\">str</code>. Om <code class=\"docutils literal notranslate\">encoding</code> inte är inställd, är standardvärdet <a class=\"reference internal\" href=\"/sv/6.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>Skapar en ny <code class=\"docutils literal notranslate\">QueryDict</code> med nycklar från <code class=\"docutils literal notranslate\">iterable</code> och varje värde lika med <code class=\"docutils literal notranslate\">value</code>. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>QueryDict<span class=\"o\">.</span>fromkeys<span class=\"p\">([</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;b&quot;</span><span class=\"p\">],</span> value<span class=\"o\">=</span><span class=\"s2\">&quot;val&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&lt;QueryDict: {&#39;a&#39;: [&#39;val&#39;, &#39;val&#39;], &#39;b&#39;: [&#39;val&#39;]}&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.__getitem__\">\n<span class=\"sig-prename descclassname\">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>Returnerar det senaste värdet för den angivna nyckeln; eller en tom lista (<code class=\"docutils literal notranslate\">[]</code>) om nyckeln finns men inte har några värden. Utlöser <code class=\"docutils literal notranslate\">django.utils.datastructures.MultiValueDictKeyError</code> om nyckeln inte finns. (Detta är en subklass av Pythons standard <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>, så du kan hålla dig till att fånga <code class=\"docutils literal notranslate\">KeyError</code>.)</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</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><span class=\"fm\">__getitem__</span><span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;3&#39;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span><span class=\"fm\">__setitem__</span><span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">,</span> <span class=\"p\">[])</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span><span class=\"fm\">__getitem__</span><span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">[]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.__setitem__\">\n<span class=\"sig-prename descclassname\">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>Sätter den angivna nyckeln till <code class=\"docutils literal notranslate\">[value]</code> (en lista vars enda element är <code class=\"docutils literal notranslate\">value</code>). Observera att denna, liksom andra ordboksfunktioner som har bieffekter, endast kan anropas på en föränderlig <code class=\"docutils literal notranslate\">QueryDict</code> (t.ex. en som skapades via <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>Returnerar <code class=\"docutils literal notranslate\">True</code> om den angivna nyckeln är inställd. Detta låter dig göra, t.ex., <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>Använder samma logik som <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>, med en hook för att returnera ett standardvärde om nyckeln inte finns.</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>Som <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>, förutom att den använder <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> internt.</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>Tar antingen en <code class=\"docutils literal notranslate\">QueryDict</code> eller en ordbok. Som <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>, förutom att den <em>tillägger</em> till de aktuella ordboksobjekten i stället för att ersätta dem. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&quot;</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=\"s2\">&quot;a&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;2&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>getlist<span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;1&#39;, &#39;2&#39;]</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"p\">[</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">]</span>  <span class=\"c1\"># returns the last</span>\n<span class=\"go\">&#39;2&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.items\">\n<span class=\"sig-prename descclassname\">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>Som <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>, men använder samma logik för sista värde som <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> och returnerar ett iteratorobjekt i stället för ett vyobjekt. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span>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>Som <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>, men använder samma logik för sista värde som <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> och returnerar en iterator i stället för ett vyobjekt. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"nb\">list</span><span class=\"p\">(</span>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>Dessutom har <code class=\"docutils literal notranslate\">QueryDict</code> följande metoder:</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>Returnerar en kopia av objektet med hjälp av <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>. Denna kopia kommer att vara mutabel även om originalet inte var det.</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>Returnerar en lista över data med den begärda nyckeln. Returnerar en tom lista om nyckeln inte finns och <code class=\"docutils literal notranslate\">default</code> är <code class=\"docutils literal notranslate\">None</code>. Det är garanterat att en lista returneras om inte det angivna standardvärdet inte är en lista.</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>Ställer in den angivna nyckeln till <code class=\"docutils literal notranslate\">list_</code> (till skillnad från <code class=\"xref py py-meth docutils literal notranslate\">__setitem__`()</code>).</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>Lägger till ett objekt i den interna lista som är kopplad till nyckeln.</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>Som <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>, men den tar en lista med värden i stället för ett enda värde.</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>Liksom <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>, men inkluderar alla värden som en lista för varje medlem i ordboken. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>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>Returnerar en lista med värden för den angivna nyckeln och tar bort dem från ordlistan. Ger <code class=\"docutils literal notranslate\">KeyError</code> om nyckeln inte finns. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</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=\"s2\">&quot;a&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">[&#39;1&#39;, &#39;2&#39;, &#39;3&#39;]</span>\n</code></pre></div>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.http.QueryDict.popitem\">\n<span class=\"sig-prename descclassname\">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>Tar bort en godtycklig medlem i ordboken (eftersom det inte finns något begrepp för ordning) och returnerar en tupel med två värden som innehåller nyckeln och en lista över alla värden för nyckeln. Orsakar <code class=\"docutils literal notranslate\">KeyError</code> när den anropas på en tom ordbok. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=2&amp;a=3&quot;</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>Returnerar en <code class=\"docutils literal notranslate\">dict</code> representation av <code class=\"docutils literal notranslate\">QueryDict</code>. För varje (nyckel, lista) par i <code class=\"docutils literal notranslate\">QueryDict</code>, kommer <code class=\"docutils literal notranslate\">dict</code> att ha (nyckel, objekt), där objektet är ett element i listan, med samma logik som <code class=\"xref py py-meth docutils literal notranslate\">QueryDict.__getitem__`()</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=1&amp;a=3&amp;a=5&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>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>Returnerar en sträng med data i frågesträngformat. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>q <span class=\"o\">=</span> QueryDict<span class=\"p\">(</span><span class=\"s2\">&quot;a=2&amp;b=3&amp;b=5&quot;</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>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>Använd parametern <code class=\"docutils literal notranslate\">safe</code> för att skicka tecken som inte behöver kodas. Till exempel:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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=\"s2\">&quot;next&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;/a&amp;b/&quot;</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>q<span class=\"o\">.</span>urlencode<span class=\"p\">(</span>safe<span class=\"o\">=</span><span class=\"s2\">&quot;/&quot;</span><span class=\"p\">)</span>\n<span class=\"go\">&#39;next=/a%26b/&#39;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"httpresponse-objects\">\n<h2>objekt för <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>I motsats till <a class=\"reference internal\" href=\"#django.http.HttpRequest\" title=\"django.http.HttpRequest\"><code class=\"xref py py-class docutils literal notranslate\">HttpRequest</code></a>-objekt, som skapas automatiskt av Django, är <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-objekt ditt ansvar. Varje vy du skriver är ansvarig för att instansiera, fylla i och returnera en <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>Klassen <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> finns i modulen <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>Användning<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>Överföring av strängar<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>Typisk användning är att skicka innehållet på sidan, som en sträng, bytestring eller <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>, till <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-konstruktören:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"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=\"s2\">&quot;Bytestrings are also accepted.&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=\"nb\">memoryview</span><span class=\"p\">(</span><span class=\"sa\">b</span><span class=\"s2\">&quot;Memoryview as well.&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Men om du vill lägga till innehåll stegvis kan du använda <code class=\"docutils literal notranslate\">response</code> som ett filliknande objekt:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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>Överföra iteratorer<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>Slutligen kan du skicka <code class=\"docutils literal notranslate\">HttpResponse</code> en iterator i stället för strängar. <code class=\"docutils literal notranslate\">HttpResponse</code> kommer att konsumera iteratorn omedelbart, lagra dess innehåll som en sträng och kasta den. Objekt med en <code class=\"docutils literal notranslate\">close()</code>-metod, t.ex. filer och generatorer, stängs omedelbart.</p>\n<p>Om du vill att svaret ska strömmas från iteratorn till klienten måste du använda klassen <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> istället.</p>\n</section>\n<section id=\"setting-header-fields\">\n<span id=\"id2\"></span><h4>Ställa in rubrikfält<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>Om du vill ange eller ta bort ett rubrikfält i svaret använder du <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=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"mi\">120</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">del</span> response<span class=\"o\">.</span>headers<span class=\"p\">[</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Du kan också manipulera rubriker genom att behandla ditt svar som en ordbok:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"mi\">120</span>\n<span class=\"gp\">&gt;&gt;&gt; </span><span class=\"k\">del</span> response<span class=\"p\">[</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>Detta proxy till <code class=\"docutils literal notranslate\">HttpResponse.headers</code>, och är det ursprungliga gränssnittet som erbjuds av <code class=\"docutils literal notranslate\">HttpResponse</code>.</p>\n<p>När du använder detta gränssnitt, till skillnad från en ordbok, ger inte <code class=\"docutils literal notranslate\">del</code> upphov till <code class=\"docutils literal notranslate\">KeyError</code> om rubrikfältet inte finns.</p>\n<p>Du kan också ställa in rubriker vid instansiering:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span>headers<span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;Age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">120</span><span class=\"p\">})</span>\n</code></pre></div>\n<p>För att ställa in rubrikfälten <code class=\"docutils literal notranslate\">Cache-Control</code> och <code class=\"docutils literal notranslate\">Vary</code> rekommenderas det att använda metoderna <a class=\"reference internal\" href=\"/sv/6.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> och <a class=\"reference internal\" href=\"/sv/6.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> från <a class=\"reference internal\" href=\"/sv/6.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>, eftersom dessa fält kan ha flera kommaseparerade värden. ”Patch”-metoderna säkerställer att andra värden, t.ex. som lagts till av ett mellanprogram, inte tas bort.</p>\n<p>HTTP-headerfält kan inte innehålla nya rader. Ett försök att ställa in ett rubrikfält som innehåller ett tecken för nya rader (CR eller LF) kommer att ge upphov till <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>Tala om för webbläsaren att behandla svaret som en bifogad fil<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>Om du vill att webbläsaren ska behandla svaret som en bifogad fil anger du rubrikerna <code class=\"docutils literal notranslate\">Content-Type</code> och <code class=\"docutils literal notranslate\">Content-Disposition</code>. Så här kan du t.ex. returnera ett Microsoft Excel-kalkylblad:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>response <span class=\"o\">=</span> HttpResponse<span class=\"p\">(</span>\n<span class=\"gp\">... </span>    my_data<span class=\"p\">,</span>\n<span class=\"gp\">... </span>    headers<span class=\"o\">=</span><span class=\"p\">{</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;Content-Type&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;application/vnd.ms-excel&quot;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>        <span class=\"s2\">&quot;Content-Disposition&quot;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;attachment; filename=&quot;foo.xls&quot;&#39;</span><span class=\"p\">,</span>\n<span class=\"gp\">... </span>    <span class=\"p\">},</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Det finns inget Django-specifikt med <code class=\"docutils literal notranslate\">Content-Disposition</code>-headern, men det är lätt att glömma syntaxen, så vi har inkluderat den här.</p>\n</section>\n</section>\n<section id=\"id3\">\n<h3>Attribut<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>En bytestring som representerar innehållet, kodad från en sträng om så behövs.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.text\">\n<span class=\"sig-prename descclassname\">HttpResponse.</span><span class=\"sig-name descname\">text</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.text\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>En strängrepresentation av <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>, avkodad med hjälp av svarets <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> (standard är <code class=\"docutils literal notranslate\">UTF-8</code> om den är tom).</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.cookies\">\n<span class=\"sig-prename descclassname\">HttpResponse.</span><span class=\"sig-name descname\">cookies</span><a class=\"heading-anchor\" href=\"#django.http.HttpResponse.cookies\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ett <a class=\"reference external\" href=\"https://docs.python.org/3/library/http.cookies.html#http.cookies.SimpleCookie\" title=\"(in Python v3.14)\"><code class=\"xref py py-obj docutils literal notranslate\">http.cookies.SimpleCookie</code></a>-objekt som innehåller kakorna i svaret.</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>Ett diktliknande objekt som inte skiljer på skiftlägeskod och som ger ett gränssnitt till alla HTTP-rubriker i svaret, utom en <code class=\"docutils literal notranslate\">Set-Cookie</code>-rubrik. Se <a class=\"reference internal\" href=\"#setting-header-fields\"><span class=\"std std-ref\">Ställa in rubrikfält</span></a> och <a class=\"reference internal\" href=\"#django.http.HttpResponse.cookies\" title=\"django.http.HttpResponse.cookies\"><code class=\"xref py py-attr docutils literal notranslate\">HttpResponse.cookies</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.charset\">\n<span class=\"sig-prename descclassname\">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>En sträng som anger den teckenuppsättning som svaret kommer att kodas med. Om den inte anges vid instantiering av <code class=\"docutils literal notranslate\">HttpResponse</code> kommer den att extraheras från <code class=\"docutils literal notranslate\">content_type</code> och om det inte lyckas kommer inställningen <code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET`</code> att användas.</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>Den <span class=\"target\" id=\"index-28\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15\"><strong>HTTP-statuskod</strong></a> för svaret.</p>\n<p>Om inte <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> uttryckligen har angetts, kommer en ändring av värdet för <code class=\"docutils literal notranslate\">status_code</code> utanför konstruktören också att ändra värdet för <code class=\"docutils literal notranslate\">reason_phrase</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.HttpResponse.reason_phrase\">\n<span class=\"sig-prename descclassname\">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>HTTP-anledningsfras för svaret. Den använder <span class=\"target\" id=\"index-29\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15.1\"><strong>HTTP-standardens</strong></a> standardanledningsfraser.</p>\n<p>Om det inte uttryckligen anges bestäms <code class=\"docutils literal notranslate\">reason_phrase</code> av värdet på <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>Detta är alltid <code class=\"docutils literal notranslate\">False</code>.</p>\n<p>Detta attribut finns för att middleware ska kunna behandla strömmande svar på ett annat sätt än vanliga svar.</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> om svaret har avslutats.</p>\n</dd></dl>\n\n</section>\n<section id=\"id4\">\n<h3>Metoder<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>Instansierar ett <code class=\"docutils literal notranslate\">HttpResponse</code>-objekt med det angivna sidinnehållet, innehållstypen och sidhuvudena.</p>\n<p><code class=\"docutils literal notranslate\">content</code> är oftast en 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>, eller sträng. Andra typer konverteras till en bytestring genom att deras strängrepresentation kodas. Iteratorer bör returnera strängar eller bytestringar och dessa kommer att sammanfogas för att bilda innehållet i svaret.</p>\n<p><code class=\"docutils literal notranslate\">content_type</code> är MIME-typen som eventuellt kompletteras med en teckenuppsättningskodning och används för att fylla HTTP <code class=\"docutils literal notranslate\">Content-Type</code>-headern. Om den inte specificeras, bildas den av <code class=\"docutils literal notranslate\">'text/html'</code> och <a class=\"reference internal\" href=\"/sv/6.1/ref/settings/#std-setting-DEFAULT_CHARSET\"><code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET</code></a>-inställningarna, som standard: <code class=\"docutils literal notranslate\">&quot;text/html; charset=utf-8&quot;</code>.</p>\n<p><code class=\"docutils literal notranslate\">status</code> är <span class=\"target\" id=\"index-30\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15\"><strong>HTTP-statuskoden</strong></a> för svaret. Du kan använda Pythons <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> för tydliga alias, till exempel <code class=\"docutils literal notranslate\">HTTPStatus.NO_CONTENT</code>.</p>\n<p><code class=\"docutils literal notranslate\">reason</code> är HTTP-svarsfrasen. Om det inte anges kommer en standardfras att användas.</p>\n<p><code class=\"docutils literal notranslate\">charset</code> är den teckenuppsättning som svaret kommer att kodas med. Om det inte anges kommer det att extraheras från <code class=\"docutils literal notranslate\">content_type</code>, och om det inte lyckas kommer inställningen <code class=\"xref std std-setting docutils literal notranslate\">DEFAULT_CHARSET`</code> att användas.</p>\n<p><code class=\"docutils literal notranslate\">headers</code> är en <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> av HTTP-rubriker för svaret.</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>Sätter det angivna headernamnet till det angivna värdet. Både <code class=\"docutils literal notranslate\">header</code> och <code class=\"docutils literal notranslate\">value</code> bör vara strängar.</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>Raderar sidhuvudet med det angivna namnet. Misslyckas tyst om rubriken inte finns. Känslig för skiftlägesändringar.</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>Returnerar värdet för det angivna rubriknamnet. Saknar hänsyn till versaler.</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>Returnerar värdet för det angivna sidhuvudet, eller ett <code class=\"docutils literal notranslate\">alternativ</code> om sidhuvudet inte finns.</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>Returnerar <code class=\"docutils literal notranslate\">True</code> eller <code class=\"docutils literal notranslate\">False</code> baserat på en skiftlägesokänslig kontroll av en header med det angivna namnet.</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>Fungerar som <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> för HTTP-rubriker i svaret.</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>Ställer in en header om den inte redan har ställts in.</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>Ställer in en cookie. Parametrarna är desamma som i <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-objektet i Pythons standardbibliotek.</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\">max_age</code> ska vara ett <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>-objekt, ett heltal i sekunder eller <code class=\"docutils literal notranslate\">None</code> (standard) om cookien bara ska vara lika länge som klientens webbläsarsession. Om <code class=\"docutils literal notranslate\">expires</code> inte anges kommer den att beräknas.</p></li>\n<li><p><code class=\"docutils literal notranslate\">expires</code> ska antingen vara en sträng i formatet <code class=\"docutils literal notranslate\">&quot;Wdy, DD-Mon-YY HH:MM:SS GMT&quot;</code> eller ett <code class=\"docutils literal notranslate\">datetime.datetime</code>-objekt i UTC. Om <code class=\"docutils literal notranslate\">expires</code> är ett <code class=\"docutils literal notranslate\">datetime</code>-objekt kommer <code class=\"docutils literal notranslate\">max_age</code> att beräknas.</p></li>\n<li><p>Använd <code class=\"docutils literal notranslate\">domain</code> om du vill ställa in en cookie för flera domäner. Till exempel: kommer <code class=\"docutils literal notranslate\">domain=&quot;example.com&quot;</code> att ställa in en cookie som kan läsas av domänerna www.example.com, blog.example.com, etc. I annat fall kan en cookie endast läsas av den domän som satte den.</p></li>\n<li><p>Använd <code class=\"docutils literal notranslate\">secure=True</code> om du vill att cookien endast ska skickas till servern när en begäran görs med <code class=\"docutils literal notranslate\">https</code>-schema.</p></li>\n<li><p>Använd <code class=\"docutils literal notranslate\">httponly=True</code> om du vill förhindra att JavaScript på klientsidan får tillgång till cookien.</p>\n<p><a class=\"reference external\" href=\"https://owasp.org/www-community/HttpOnly\">HttpOnly</a> är en flagga som ingår i en Set-Cookie HTTP-svarshuvud. Det är en del av <span class=\"target\" id=\"index-31\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc6265.html#section-4.1.2.6\"><strong>RFC 6265</strong></a>-standarden för cookies och kan vara ett användbart sätt att minska risken för att ett skript på klientsidan får tillgång till skyddade cookie-data.</p>\n</li>\n<li><p>Använd <code class=\"docutils literal notranslate\">samesite='Strict'</code> eller <code class=\"docutils literal notranslate\">samesite='Lax'</code> för att tala om för webbläsaren att inte skicka denna cookie när du utför en cross-origin begäran. <a class=\"reference external\" href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#samesitesamesite-value\">SameSite</a> stöds inte av alla webbläsare, så det är inte en ersättning för Djangos CSRF-skydd, utan snarare en åtgärd för djupförsvar.</p>\n<p>Använd <code class=\"docutils literal notranslate\">samesite='None'</code> (sträng) för att uttryckligen ange att denna cookie skickas med alla förfrågningar på samma webbplats och mellan webbplatser.</p>\n</li>\n</ul>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p><span class=\"target\" id=\"index-32\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc6265.html#section-6.1\"><strong>RFC 6265</strong></a> anger att användaragenter bör stödja cookies på minst 4096 byte. För många webbläsare är detta också den maximala storleken. Django kommer inte att göra ett undantag om det finns ett försök att lagra en cookie på mer än 4096 byte, men många webbläsare kommer inte att ställa in cookien korrekt.</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>Som <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>, men kakan <a class=\"reference internal\" href=\"/sv/6.1/topics/signing/\"><span class=\"doc\">signeras kryptografiskt</span></a> innan den sätts. Använd tillsammans med <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>. Du kan använda det valfria argumentet <code class=\"docutils literal notranslate\">salt</code> för att placera kakan i ett separat namnutrymme för signaturer, men du måste komma ihåg att skicka det även till motsvarande anrop av <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>.</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>Raderar cookien med den angivna nyckeln. Misslyckas tyst om nyckeln inte finns.</p>\n<p>På grund av hur cookies fungerar bör <code class=\"docutils literal notranslate\">path</code> och <code class=\"docutils literal notranslate\">domain</code> vara samma värden som du använde i <code class=\"docutils literal notranslate\">set_cookie()</code> - annars kanske cookien inte raderas.</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>Den här metoden anropas direkt av WSGI- eller ASGI-servern i slutet av begäran.</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>Denna metod gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett filliknande objekt.</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>Denna metod gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett filliknande objekt.</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>Denna metod gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett filliknande objekt.</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>Returnerar värdet av <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>. Den här metoden gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett strömliknande objekt.</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>Alltid <code class=\"docutils literal notranslate\">False</code>. Denna metod gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett strömliknande objekt.</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>Alltid <code class=\"docutils literal notranslate\">False</code>. Denna metod gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett strömliknande objekt.</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>Alltid <code class=\"docutils literal notranslate\">True</code>. Denna metod gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett strömliknande objekt.</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>Skriver en lista med rader till svaret. Linjeseparatorer läggs inte till. Den här metoden gör en <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-instans till ett strömliknande objekt.</p>\n</dd></dl>\n\n</section>\n<section id=\"httpresponse-subclasses\">\n<span id=\"ref-httpresponse-subclasses\"></span><h3>underklasser till <code class=\"docutils literal notranslate\">HttpResponse</code><a class=\"heading-anchor\" href=\"#httpresponse-subclasses\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django innehåller ett antal underklasser av <code class=\"docutils literal notranslate\">HttpResponse</code> som hanterar olika typer av HTTP-svar. Precis som <code class=\"docutils literal notranslate\">HttpResponse</code> finns dessa underklasser i <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>Det första argumentet till konstruktören är obligatoriskt - sökvägen som ska omdirigeras till. Detta kan vara en fullständigt kvalificerad URL (t.ex. <code class=\"docutils literal notranslate\">'https://www.yahoo.com/search/'</code>), en absolut sökväg utan domän (t.ex. <code class=\"docutils literal notranslate\">'/search/'</code>) eller till och med en relativ sökväg (t.ex. <code class=\"docutils literal notranslate\">'search/'</code>). I det sista fallet kommer klientens webbläsare att rekonstruera den fullständiga URL:en själv enligt den aktuella sökvägen.</p>\n<p>Konstruktören accepterar ett valfritt nyckelordsargument <code class=\"docutils literal notranslate\">preserve_request</code> som standard är <code class=\"docutils literal notranslate\">False</code>, vilket ger ett svar med en 302-statuskod. Om <code class=\"docutils literal notranslate\">preserve_request</code> är <code class=\"docutils literal notranslate\">True</code> blir statuskoden 307 istället.</p>\n<p>Konstruktorn accepterar ett valfritt nyckelordsargument <code class=\"docutils literal notranslate\">max_length</code> för att åsidosätta den högsta tillåtna längden för omdirigerings-URL:en. Du kan sätta det till <code class=\"docutils literal notranslate\">None</code> för att inaktivera längdkontrollen.</p>\n<p>Se <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> för andra valfria konstruktörsargument.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.1\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 6.1</p><p><code class=\"docutils literal notranslate\">max_length</code> lades till.</p>\n</aside>\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>Detta skrivskyddade attribut representerar den URL som svaret kommer att omdirigera till (motsvarande svarshuvudet <code class=\"docutils literal notranslate\">Location</code>).</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>Som <a class=\"reference internal\" href=\"#django.http.HttpResponseRedirect\" title=\"django.http.HttpResponseRedirect\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponseRedirect</code></a>, men den returnerar en permanent omdirigering (HTTP-statuskod 301) i stället för en ”hittad” omdirigering (statuskod 302). När <code class=\"docutils literal notranslate\">preserve_request=True</code> är statuskoden för svaret 308.</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>Konstruktören tar inte emot några argument och inget innehåll ska läggas till i detta svar. Använd detta för att ange att en sida inte har ändrats sedan användarens senaste begäran (statuskod 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>Fungerar precis som <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> men använder en 400-statuskod.</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>Fungerar precis som <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> men använder en 404-statuskod.</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>Fungerar precis som <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> men använder en 403-statuskod.</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>Som <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>, men använder en 405-statuskod. Det första argumentet till konstruktören är obligatoriskt: en lista över tillåtna metoder (t.ex. <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>Fungerar precis som <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> men använder en 410-statuskod.</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>Fungerar precis som <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> men använder en 500-statuskod.</p>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Om en anpassad underklass av <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> implementerar en <code class=\"docutils literal notranslate\">render</code>-metod, kommer Django att behandla den som en emulering av en <a class=\"reference internal\" href=\"/sv/6.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>, och <code class=\"docutils literal notranslate\">render</code>-metoden måste själv returnera ett giltigt svarsobjekt.</p>\n</aside>\n<section id=\"custom-response-classes\">\n<h4>Anpassade svarsklasser<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>Om du behöver en svarsklass som Django inte tillhandahåller kan du skapa den med hjälp av <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>. Till exempel:</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\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>objekt för <code class=\"docutils literal notranslate\">JsonResponse</code><a class=\"heading-anchor\" href=\"#jsonresponse-objects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.http.JsonResponse\">\n<em class=\"property\"><span class=\"k\">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>En <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>-underklass som hjälper till att skapa ett JSON-kodat svar. Den ärver de flesta beteenden från sin superklass med ett par skillnader:</p>\n<p>Dess standardrubrik <code class=\"docutils literal notranslate\">Content-Type</code> är inställd på <em class=\"mimetype\">application/json</em>.</p>\n<p>Den första parametern, <code class=\"docutils literal notranslate\">data</code>, bör vara en <code class=\"docutils literal notranslate\">dict</code>-instans. Om parametern <code class=\"docutils literal notranslate\">afe</code> är satt till <code class=\"docutils literal notranslate\">False</code> (se nedan) kan det vara vilket JSON-serialiserbart objekt som helst.</p>\n<p><code class=\"docutils literal notranslate\">encoder</code>, som som standard är <a class=\"reference internal\" href=\"/sv/6.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>, kommer att användas för att serialisera data. Se <a class=\"reference internal\" href=\"/sv/6.1/topics/serialization/#serialization-formats-json\"><span class=\"std std-ref\">JSON serialization</span></a> för mer information om denna serialiserare.</p>\n<p>Den booleska parametern <code class=\"docutils literal notranslate\">safe</code> är som standard inställd på <code class=\"docutils literal notranslate\">True</code>. Om den är inställd på <code class=\"docutils literal notranslate\">False</code> kan vilket objekt som helst skickas för serialisering (annars är endast <code class=\"docutils literal notranslate\">dict</code>-instanser tillåtna). Om <code class=\"docutils literal notranslate\">afe</code> är <code class=\"docutils literal notranslate\">True</code> och ett objekt som inte är <code class=\"docutils literal notranslate\">dict</code> skickas som första argument, kommer ett <code class=\"xref py py-exc docutils literal notranslate\">TypeError`</code> att uppstå.</p>\n<p>Parametern <code class=\"docutils literal notranslate\">json_dumps_params</code> är en ordlista med nyckelordsargument som ska skickas till anropet <code class=\"docutils literal notranslate\">json.dumps()</code> som används för att generera svaret.</p>\n</dd></dl>\n\n<section id=\"id5\">\n<h3>Användning<a class=\"heading-anchor\" href=\"#id5\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Typisk användning kan se ut som:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"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=\"s2\">&quot;foo&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;bar&quot;</span><span class=\"p\">})</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>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>Serialisering av objekt som inte är ordböcker<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>För att kunna serialisera andra objekt än <code class=\"docutils literal notranslate\">dict</code> måste du ställa in parametern <code class=\"docutils literal notranslate\">afe</code> till <code class=\"docutils literal notranslate\">False</code>:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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>Utan att ange <code class=\"docutils literal notranslate\">safe=False</code> kommer ett <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> att uppstå.</p>\n<p>Observera att ett API som baseras på <code class=\"docutils literal notranslate\">dict</code>-objekt är mer utbyggbart, flexibelt och gör det lättare att upprätthålla framåtkompatibilitet. Därför bör du undvika att använda icke-dict-objekt i JSON-kodade svar.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>Före <a class=\"reference external\" href=\"https://262.ecma-international.org/5.1/#sec-11.1.4\">den femte utgåvan av ECMAScript</a> gick det att förgifta JavaScript-konstruktorn <code class=\"docutils literal notranslate\">Array</code>. Därför tillåter Django som standard inte att objekt som inte är ordböcker skickas till konstruktorn <a class=\"reference internal\" href=\"#django.http.JsonResponse\" title=\"django.http.JsonResponse\"><code class=\"xref py py-class docutils literal notranslate\">JsonResponse</code></a>. De flesta moderna webbläsare implementerar dock ECMAScript 5, som undanröjer denna attackvektor. Därför går det att inaktivera denna säkerhetsåtgärd.</p>\n</aside>\n</section>\n<section id=\"changing-the-default-json-encoder\">\n<h4>Ändra standard JSON-kodare<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>Om du behöver använda en annan JSON-kodningsklass kan du skicka parametern <code class=\"docutils literal notranslate\">encoder</code> till konstruktörsmetoden:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>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>-objekt<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>Klassen <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> används för att strömma ett svar från Django till webbläsaren.</p>\n<aside class=\"admonition-advanced-usage admonition\" role=\"note\">\n<p class=\"admonition-title\">Avancerad användning</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> är något avancerad, eftersom det är viktigt att veta om du kommer att servera din applikation synkront under WSGI eller asynkront under ASGI, och anpassa din användning på lämpligt sätt.</p>\n<p>Läs dessa anvisningar med försiktighet.</p>\n</aside>\n<p>Ett exempel på användning av <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> under WSGI är att strömma innehåll när generering av svaret skulle ta för lång tid eller använda för mycket minne. Det är till exempel användbart för <a class=\"reference internal\" href=\"/sv/6.1/howto/outputting-csv/#streaming-csv-files\"><span class=\"std std-ref\">generering av stora CSV-filer</span></a>.</p>\n<p>Det finns dock prestandaöverväganden när du gör detta. Django, under WSGI, är utformad för kortlivade förfrågningar. Strömmande svar kommer att binda en arbetsprocess under hela svarets varaktighet. Detta kan resultera i dålig prestanda.</p>\n<p>Generellt sett skulle du utföra dyra uppgifter utanför begäran-svar-cykeln, snarare än att tillgripa ett strömmat svar.</p>\n<p>Vid servering under ASGI behöver dock en <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> inte stoppa andra förfrågningar från att serveras medan de väntar på I/O. Detta öppnar upp för möjligheten till långlivade förfrågningar för strömmande innehåll och implementering av mönster som lång polling och server-sända händelser.</p>\n<p>Även enligt ASGI note bör <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> endast användas i situationer där det är absolut nödvändigt att hela innehållet inte itereras innan data överförs till klienten. Eftersom innehållet inte kan nås kan många mellanprogram inte fungera normalt. Till exempel: kan inte rubrikerna <code class=\"docutils literal notranslate\">ETag</code> och <code class=\"docutils literal notranslate\">Content-Length</code> genereras för strömmande svar.</p>\n<p>Klassen <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> är inte en underklass till <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a>, eftersom den har ett något annorlunda API. Den är dock nästan identisk, med följande anmärkningsvärda skillnader:</p>\n<ul>\n<li><p>Den bör ges en iterator som ger bytestrings, <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>, eller strängar som innehåll. Vid servering under WSGI bör detta vara en sync-iterator. När det används under ASGI bör det vara en async-iterator.</p></li>\n<li><p>Du kan inte komma åt dess innehåll, förutom genom att iterera själva svarsobjektet. Detta bör endast ske när svaret returneras till klienten: du bör inte iterera svaret själv.</p>\n<p>Under WSGI kommer svaret att itereras synkront. Under ASGI kommer svaret att itereras asynkront. (Det är därför iterator-typen måste matcha det protokoll du använder)</p>\n<p>För att undvika en krasch kommer en felaktig iteratortyp att mappas till rätt typ under iterationen och en varning kommer att utfärdas, men för att göra detta måste iteratorn konsumeras helt och hållet, vilket motverkar syftet med att använda en <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> överhuvudtaget.</p>\n</li>\n<li><p>Den har inget <code class=\"docutils literal notranslate\">content</code>-attribut. Istället har den ett <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>-attribut. Detta kan användas i middleware för att omsluta svarets iterabel, men bör inte konsumeras.</p></li>\n<li><p>Det har inget <code class=\"docutils literal notranslate\">text</code>-attribut, eftersom det skulle kräva iterering av svarsobjektet.</p></li>\n<li><p>Du kan inte använda de filliknande objekten <code class=\"docutils literal notranslate\">tell()</code> eller <code class=\"docutils literal notranslate\">write()</code> metoderna. Om du gör det kommer ett undantag att uppstå.</p></li>\n</ul>\n<p>Basklassen <a class=\"reference internal\" href=\"#django.http.HttpResponseBase\" title=\"django.http.HttpResponseBase\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponseBase</code></a> är gemensam för <a class=\"reference internal\" href=\"#django.http.HttpResponse\" title=\"django.http.HttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponse</code></a> och <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>Attribut<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>En iterator av svarsinnehållet, bytestringskodat enligt <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>Den <span class=\"target\" id=\"index-33\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15\"><strong>HTTP-statuskod</strong></a> för svaret.</p>\n<p>Om inte <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> uttryckligen har angetts, kommer en ändring av värdet för <code class=\"docutils literal notranslate\">status_code</code> utanför konstruktören också att ändra värdet för <code class=\"docutils literal notranslate\">reason_phrase</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.reason_phrase\">\n<span class=\"sig-prename descclassname\">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>HTTP-anledningsfras för svaret. Den använder <span class=\"target\" id=\"index-34\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-15.1\"><strong>HTTP-standardens</strong></a> standardanledningsfraser.</p>\n<p>Om det inte uttryckligen anges bestäms <code class=\"docutils literal notranslate\">reason_phrase</code> av värdet på <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>Detta är alltid <code class=\"docutils literal notranslate\">True</code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.http.StreamingHttpResponse.is_async\">\n<span class=\"sig-prename descclassname\">StreamingHttpResponse.</span><span class=\"sig-name descname\">is_async</span><a class=\"heading-anchor\" href=\"#django.http.StreamingHttpResponse.is_async\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Boolean som anger om <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\">StreamingHttpResponse.streaming_content</code></a> är en asynkron iterator eller inte.</p>\n<p>Detta är användbart för mellanprogram som behöver omsluta <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\">StreamingHttpResponse.streaming_content</code></a>.</p>\n</dd></dl>\n\n</section>\n<section id=\"handling-disconnects\">\n<span id=\"request-response-streaming-disconnect\"></span><h3>Hantering av frånkopplingar<a class=\"heading-anchor\" href=\"#handling-disconnects\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om klienten kopplar bort sig under ett strömmande svar kommer Django att avbryta den coroutine som hanterar svaret. Om du vill städa upp resurser manuellt kan du göra det genom att fånga <code class=\"docutils literal notranslate\">asyncio.CancelledError</code>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">async</span> <span class=\"k\">def</span> <span class=\"nf\">streaming_response</span><span class=\"p\">():</span>\n    <span class=\"k\">try</span><span class=\"p\">:</span>\n        <span class=\"c1\"># Do some work here</span>\n        <span class=\"k\">async</span> <span class=\"k\">for</span> chunk <span class=\"ow\">in</span> my_streaming_iterator<span class=\"p\">():</span>\n            <span class=\"k\">yield</span> chunk\n    <span class=\"k\">except</span> asyncio<span class=\"o\">.</span>CancelledError<span class=\"p\">:</span>\n        <span class=\"c1\"># Handle disconnect</span>\n        <span class=\"o\">...</span>\n        <span class=\"k\">raise</span>\n\n\n<span class=\"k\">async</span> <span class=\"k\">def</span> <span class=\"nf\">my_streaming_view</span><span class=\"p\">(</span>request<span class=\"p\">):</span>\n    <span class=\"k\">return</span> StreamingHttpResponse<span class=\"p\">(</span>streaming_response<span class=\"p\">())</span>\n</code></pre></div>\n<p>Detta exempel visar bara hur man hanterar frånkoppling av klienten medan svaret strömmas. Om du utför långvariga operationer i din vy innan du returnerar objektet <code class=\"docutils literal notranslate\">StreamingHttpResponse</code> kanske du också vill <a class=\"reference internal\" href=\"/sv/6.1/topics/async/#async-handling-disconnect\"><span class=\"std std-ref\">hantera frånkopplingar i vyn</span></a> själv.</p>\n</section>\n</section>\n<section id=\"fileresponse-objects\">\n<h2><code class=\"docutils literal notranslate\">FileResponse</code>-objekt<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> är en underklass till <a class=\"reference internal\" href=\"#django.http.StreamingHttpResponse\" title=\"django.http.StreamingHttpResponse\"><code class=\"xref py py-class docutils literal notranslate\">StreamingHttpResponse</code></a> som är optimerad för binära filer. Den använder <span class=\"target\" id=\"index-35\"></span><a class=\"pep reference external\" href=\"https://peps.python.org/pep-3333/#optional-platform-specific-file-handling\"><strong>wsgi.file_wrapper</strong></a> om den tillhandahålls av wsgi-servern, annars strömmar den ut filen i små bitar.</p>\n<p>Om <code class=\"docutils literal notranslate\">as_attachment=True</code>, sätts <code class=\"docutils literal notranslate\">Content-Disposition</code> rubriken till <code class=\"docutils literal notranslate\">attachment</code>, vilket ber webbläsaren att erbjuda filen till användaren som en nedladdning. I annat fall kommer ett <code class=\"docutils literal notranslate\">Content-Disposition</code>-huvud med värdet <code class=\"docutils literal notranslate\">inline</code> (webbläsarens standard) att anges endast om ett filnamn finns tillgängligt.</p>\n<p>Om <code class=\"docutils literal notranslate\">open_file</code> inte har något namn eller om namnet på <code class=\"docutils literal notranslate\">open_file</code> inte är lämpligt, ange ett eget filnamn med hjälp av parametern <code class=\"docutils literal notranslate\">filename</code>. Observera att om du skickar ett filliknande objekt som <code class=\"docutils literal notranslate\">io.BytesIO</code>, är det din uppgift att <code class=\"docutils literal notranslate\">seek()</code> det innan du skickar det till <code class=\"docutils literal notranslate\">FileResponse</code>.</p>\n<p>Rubriken <code class=\"docutils literal notranslate\">Content-Length</code> sätts automatiskt när den kan gissas från innehållet i <code class=\"docutils literal notranslate\">open_file</code>.</p>\n<p>Rubriken <code class=\"docutils literal notranslate\">Content-Type</code> ställs in automatiskt när den kan gissas från <code class=\"docutils literal notranslate\">filnamnet</code> eller namnet på <code class=\"docutils literal notranslate\">open_file</code>.</p>\n</dd></dl>\n\n<p><code class=\"docutils literal notranslate\">FileResponse</code> accepterar alla filliknande objekt med binärt innehåll, till exempel en fil som öppnas i binärt läge så här:</p>\n<div class=\"code-block\" data-language=\"pycon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python console</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Python console code\"><code><span class=\"gp\">&gt;&gt;&gt; </span><span class=\"kn\">from</span> <span class=\"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=\"s2\">&quot;myfile.png&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;rb&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>Filen kommer att stängas automatiskt, så öppna den inte med en kontexthanterare.</p>\n<aside class=\"admonition-use-under-asgi admonition\" role=\"note\">\n<p class=\"admonition-title\">Användning under ASGI</p>\n<p>Pythons fil-API är synkront. Detta innebär att filen måste vara helt förbrukad för att kunna serveras under ASGI.</p>\n<p>För att strömma en fil asynkront måste du använda ett tredjepartspaket som tillhandahåller ett API för asynkrona filer, t.ex. <a class=\"reference external\" href=\"https://github.com/Tinche/aiofiles\">aiofiles</a>.</p>\n</aside>\n<section id=\"id7\">\n<h3>Metoder<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>Denna metod anropas automatiskt under initieringen av svaret och ställer in olika rubriker (<code class=\"docutils literal notranslate\">Content-Length</code>, <code class=\"docutils literal notranslate\">Content-Type</code> och <code class=\"docutils literal notranslate\">Content-Disposition</code>) beroende på <code class=\"docutils literal notranslate\">open_file</code>.</p>\n</dd></dl>\n\n</section>\n</section>\n<section id=\"httpresponsebase-class\">\n<h2>klassen <a href=\"#id1\"><span class=\"problematic\" id=\"id2\">``</span></a>HttpResponseBase<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>Klassen <a class=\"reference internal\" href=\"#django.http.HttpResponseBase\" title=\"django.http.HttpResponseBase\"><code class=\"xref py py-class docutils literal notranslate\">HttpResponseBase</code></a> är gemensam för alla Django-svar. Den bör inte användas för att skapa svar direkt, men den kan vara användbar för typkontroll.</p>\n</section>","rootId":"module-django.http","toc":[{"title":"Snabb översikt","anchor":"quick-overview","children":[]},{"title":"HttpRequest-objekt","anchor":"httprequest-objects","children":[{"title":"Attribut","anchor":"attributes","children":[]},{"title":"Attribut som ställs in av applikationskoden","anchor":"attributes-set-by-application-code","children":[]},{"title":"Attribut som ställs in av mellanprogram","anchor":"attributes-set-by-middleware","children":[]},{"title":"Metoder","anchor":"methods","children":[]}]},{"title":"QueryDict-objekt","anchor":"querydict-objects","children":[{"title":"Metoder","anchor":"id1","children":[]}]},{"title":"objekt för HttpResponse","anchor":"httpresponse-objects","children":[{"title":"Användning","anchor":"usage","children":[{"title":"Överföring av strängar","anchor":"passing-strings","children":[]},{"title":"Överföra iteratorer","anchor":"passing-iterators","children":[]},{"title":"Ställa in rubrikfält","anchor":"setting-header-fields","children":[]},{"title":"Tala om för webbläsaren att behandla svaret som en bifogad fil","anchor":"telling-the-browser-to-treat-the-response-as-a-file-attachment","children":[]}]},{"title":"Attribut","anchor":"id3","children":[]},{"title":"Metoder","anchor":"id4","children":[]},{"title":"underklasser till HttpResponse","anchor":"httpresponse-subclasses","children":[{"title":"Anpassade svarsklasser","anchor":"custom-response-classes","children":[]}]}]},{"title":"objekt för JsonResponse","anchor":"jsonresponse-objects","children":[{"title":"Användning","anchor":"id5","children":[{"title":"Serialisering av objekt som inte är ordböcker","anchor":"serializing-non-dictionary-objects","children":[]},{"title":"Ändra standard JSON-kodare","anchor":"changing-the-default-json-encoder","children":[]}]}]},{"title":"StreamingHttpResponse-objekt","anchor":"streaminghttpresponse-objects","children":[{"title":"Attribut","anchor":"id6","children":[]},{"title":"Hantering av frånkopplingar","anchor":"handling-disconnects","children":[]}]},{"title":"FileResponse-objekt","anchor":"fileresponse-objects","children":[{"title":"Metoder","anchor":"id7","children":[]}]},{"title":"klassen ``HttpResponseBase","anchor":"httpresponsebase-class","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/6.1/ref/"}],"prev":{"docname":"ref/paginator","title":"Paginator","url":"/sv/6.1/ref/paginator/"},"next":{"docname":"ref/schema-editor","title":"SchemaEditor","url":"/sv/6.1/ref/schema-editor/"},"formats":{"html":"/sv/6.1/ref/request-response/","markdown":"/sv/6.1/ref/request-response.md","json":"/sv/6.1/ref/request-response.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/request-response.txt","official":"https://docs.djangoproject.com/sv/6.1/ref/request-response/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}