Så här distribuerar du med WSGI¶
Djangos primära distributionsplattform är WSGI, Python-standarden för webbservrar och applikationer.
Djangos hanteringskommando startproject sätter upp en minimal standardkonfiguration för WSGI åt dig, som du kan justera efter behov för ditt projekt och styra vilken WSGI-kompatibel applikationsserver som helst att använda.
Django innehåller dokumentation för att komma igång med följande WSGI-servrar:
Objektet ``applikation¶
Nyckelbegreppet för att distribuera med WSGI är application callable 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 skapar en fil <project_name>/wsgi.py som innehåller en sådan application callable.
Den används både av Djangos utvecklingsserver och i WSGI-produktionsdistributioner.
WSGI-servrar hämtar sökvägen till application callable från sin konfiguration. Djangos inbyggda server, nämligen kommandot runserver, läser den från inställningen WSGI_APPLICATION. Som standard är den inställd på <project_name>.wsgi.application, som pekar på anropet application i <project_name>/wsgi.py.
Konfigurera inställningsmodulen¶
När WSGI-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 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 wsgi.py in den på mysite.settings, där mysite är namnet på ditt projekt. Det är så runserver upptäcker standardinställningsfilen som standard.
Observera
Eftersom miljövariabler är processövergripande fungerar inte detta när du kör flera Django-webbplatser i samma process. Detta händer med mod_wsgi.
För att undvika detta problem, använd mod_wsgis daemonläge med varje webbplats i sin egen daemonprocess, eller åsidosätt värdet från miljön genom att tvinga fram os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings" i din wsgi.py`.
Tillämpning av WSGI-mellanprogram¶
För att tillämpa WSGI middleware kan du linda in applikationsobjektet. Till exempel kan du lägga till dessa rader längst ner i wsgi.py:
from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)
Du kan också ersätta Djangos WSGI-applikation med en egen WSGI-applikation som senare delegerar till Djangos WSGI-applikation, om du vill kombinera en Django-applikation med en WSGI-applikation från ett annat ramverk.
 
          