---
title: "Så här distribuerar du med ASGI"
version: 5.2
locale: sv
source: https://docs.djangoproject.com/sv/5.2/howto/deployment/asgi/
canonical: https://djangodocs.dev/sv/5.2/howto/deployment/asgi/
---
# Så här distribuerar du med ASGI

Förutom WSGI stöder Django också distribution på [ASGI](https://asgi.readthedocs.io/en/latest/), den nya Python-standarden för asynkrona webbservrar och applikationer.

Djangos hanteringskommando [`startproject`](/sv/5.2/ref/django-admin/#django-admin-startproject) ställer in en standard ASGI-konfiguration åt dig, som du kan justera efter behov för ditt projekt och styra vilken ASGI-kompatibel applikationsserver som helst att använda.

Django innehåller dokumentation för att komma igång med följande ASGI-servrar:

- [Så här använder du Django med Daphne](/sv/5.2/howto/deployment/asgi/daphne/)
- [Så här använder du Django med Hypercorn](/sv/5.2/howto/deployment/asgi/hypercorn/)
- [Så här använder du Django med Uvicorn](/sv/5.2/howto/deployment/asgi/uvicorn/)

## Objektet applikation

I likhet med WSGI måste du i ASGI tillhandahålla en ”applikation” som applikationsservern använder för att kommunicera med din kod. Den tillhandahålls vanligen som ett objekt med namnet `application` i en Python-modul som är tillgänglig för servern.

Kommandot [`startproject`](/sv/5.2/ref/django-admin/#django-admin-startproject) skapar en fil `<project_name>/asgi.py` som innehåller en sådan `application` callable.

Den används inte av utvecklingsservern (`runserver`), men kan användas av vilken ASGI-server som helst, antingen under utveckling eller i produktion.

ASGI-servrar tar vanligtvis sökvägen till applikationens anropsbarhet som en sträng; för de flesta Django-projekt kommer detta att se ut som `myproject.asgi:application`.

> **Warning**
>
> Djangos standard ASGI-hanterare kör all din kod i en synkron tråd, men om du väljer att köra din egen async-hanterare måste du vara medveten om async-safety.
>
> Anropa inte blockerande synkrona funktioner eller bibliotek i någon asynkron kod. Django hindrar dig från att göra detta med de delar av Django som inte är async-säkra, men detsamma kanske inte gäller för tredjepartsappar eller Python-bibliotek.

## Konfigurera inställningsmodulen

När ASGI-servern laddar din applikation måste Django importera inställningsmodulen - det är där hela din applikation definieras.

Django använder miljövariabeln [`DJANGO_SETTINGS_MODULE`](/sv/5.2/topics/settings/#envvar-DJANGO_SETTINGS_MODULE) för att hitta rätt inställningsmodul. Den måste innehålla den prickade sökvägen till inställningsmodulen. Du kan använda ett annat värde för utveckling och produktion; det beror helt på hur du organiserar dina inställningar.

Om den här variabeln inte är inställd, ställer standard `asgi.py` in den på `mysite.settings`, där `mysite` är namnet på ditt projekt.

## Tillämpning av ASGI-mellanprogram

För att använda ASGI middleware, eller för att bädda in Django i en annan ASGI-applikation, kan du linda in Djangos `application`-objekt i filen `asgi.py`. Till exempel:

```
from some_asgi_library import AmazingMiddleware

application = AmazingMiddleware(application)
```
