Django Hello World webbapp på en virtuell Windows Server-dator

Viktigt

Klassiska virtuella datorer dras tillbaka den 1 mars 2023.

Om du använder IaaS-resurser från ASM slutför du migreringen senast den 1 mars 2023. Vi rekommenderar att du gör bytet tidigare för att dra nytta av de många funktionsförbättringarna i Azure Resource Manager.

Mer information finns i Migrera dina IaaS-resurser till Azure Resource Manager senast den 1 mars 2023.

Anteckning

Azure har två olika distributionsmodeller för att skapa och arbeta med resurser: Azure Resource Manager och den klassiska distributionsmodellen. Den här artikeln beskriver den klassiska distributionsmodellen. Vi rekommenderar att de flesta nya distributioner använder Resource Manager-modellen.

Från och med den 15 november 2017 är virtuella datorer endast tillgängliga i Azure Portal.

Den här självstudien visar hur du är värd för en Django-baserad webbplats i Windows Server i Azure Virtual Machines. I självstudien förutsätter vi att vi inte har någon tidigare erfarenhet av Azure. När du är klar med självstudien kan du ha ett Django-baserat program igång i molnet.

Lär dig att:

  • Konfigurera en virtuell Azure-dator som värd för Django. Den här självstudien förklarar hur du gör detta för Windows Server, men du kan göra samma sak för en virtuell Linux-dator som finns i Azure.
  • Skapa ett nytt Django-program i Windows.

Självstudien visar hur du skapar en grundläggande Hello World webbapp. Programmet finns på en virtuell Azure-dator.

Följande skärmbild visar det färdiga programmet:

A browser window displays the hello world page in Azure

Anteckning

Du behöver ett Azure-konto för att genomföra kursen. Du kan aktivera dina MSDN-prenumerantförmåner eller registrera dig för en kostnadsfri utvärderingsversion i Azure.

Skapa och konfigurera en virtuell Azure-dator som värd för Django

  1. Information om hur du skapar en virtuell Azure-dator med Windows Server 2012 R2 Datacenter-distribution finns i Skapa en virtuell dator som kör Windows i Azure Portal.

  2. Ställ in Azure på att dirigera port 80-trafik från webben till port 80 på den virtuella datorn:

    1. I Azure Portal går du till instrumentpanelen och väljer den nya virtuella datorn.
    2. Klicka på Slutpunkter och sedan på Lägg till.

    Add an endpoint

    1. På sidan Lägg till slutpunkt för Namn anger du HTTP. Ange offentliga och privata TCP-portar till 80.

    Enter name and set public and private ports

    1. Klicka på OK.
  3. Välj den virtuella datorn på instrumentpanelen. Om du vill använda RDP (Remote Desktop Protocol) för att fjärransluta till den nya virtuella Azure-datorn klickar du på Anslut.

Viktigt

Följande instruktioner förutsätter att du har loggat in på den virtuella datorn korrekt. De förutsätter också att du utfärdar kommandon på den virtuella datorn och inte på den lokala datorn.

Installera Python, Django och WFastCGI

Anteckning

Om du vill ladda ned med Hjälp av Internet Explorer kan du behöva konfigurera inställningar för förbättrad säkerhetskonfiguration i Internet Explorer. Det gör du genom att klicka på Starta>administrationsverktyg>Serverhanteraren>Lokal server. Klicka på Förbättrad säkerhetskonfiguration för IE och välj sedan Av.

  1. Installera de senaste versionerna av Python 2.7 eller Python 3.4 från python.org.

  2. Installera wfastcgi- och django-paketen med pip.

    Använd följande kommando för Python 2.7:

     c:\python27\scripts\pip install wfastcgi
     c:\python27\scripts\pip install django
    

    Använd följande kommando för Python 3.4:

     c:\python34\scripts\pip install wfastcgi
     c:\python34\scripts\pip install django
    

Installera IIS med FastCGI

  • Installera Internet Information Services (IIS) med FastCGI-stöd. Det kan ta flera minuter att köra.

      start /wait %windir%\System32\PkgMgr.exe /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;IIS-CGI
    

Skapa ett nytt Django-program

  1. I C:\inetpub\wwwroot anger du följande kommando för att skapa ett nytt Django-projekt:

    Använd följande kommando för Python 2.7:

    C:\Python27\Scripts\django-admin.exe startproject helloworld
    

    Använd följande kommando för Python 3.4:

    C:\Python34\Scripts\django-admin.exe startproject helloworld
    

    The result of the New-AzureService command

  2. Kommandot django-admin genererar en grundläggande struktur för Django-baserade webbplatser:

    • helloworld\manage.py hjälper dig att börja vara värd och sluta vara värd för din Django-baserade webbplats.
    • helloworld\helloworld\settings.py har Django-inställningar för ditt program.
    • helloworld\helloworld\urls.py har mappningskoden mellan varje URL och dess vy.
  3. I katalogen C:\inetpub\wwwroot\helloworld\helloworld skapar du en ny fil med namnet views.py. Den här filen har vyn som återger sidan "hello world". Ange följande kommandon i kodredigeraren:

    from django.http import HttpResponse
    def home(request):
        html = "<html><body>Hello World!</body></html>"
        return HttpResponse(html)
    
  4. Ersätt innehållet i urls.py-filen med följande kommandon:

    from django.conf.urls import patterns, url
    urlpatterns = patterns('',
        url(r'^$', 'helloworld.views.home', name='home'),
    )
    

Konfigurera IIS

  1. I den globala applicationhost.config-filen låser du upp hanteringsavsnittet. På så sätt kan web.config-filen använda Python-hanteraren. Lägg till det här kommandot:

     %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
    
  2. Aktivera WFastCGI. Detta lägger till ett program i den globala applicationhost.config-filen, som refererar till den körbara Python tolken och wfastcgi.py skriptet.

    I Python 2.7:

     C:\python27\scripts\wfastcgi-enable
    

    I Python 3.4:

     C:\python34\scripts\wfastcgi-enable
    
  3. Skapa en web.config fil i C:\inetpub\wwwroot\helloworld. Värdet för scriptProcessor attributet ska matcha utdata från föregående steg. Mer information om inställningen wfastcgi finns i pypi wfastcgi.

    I Python 2.7:

     <configuration>
       <appSettings>
         <add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
         <add key="PYTHONPATH" value="C:\inetpub\wwwroot\helloworld" />
         <add key="DJANGO_SETTINGS_MODULE" value="helloworld.settings" />
       </appSettings>
       <system.webServer>
         <handlers>
             <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python27\python.exe|C:\Python27\Lib\site-packages\wfastcgi.pyc" resourceType="Unspecified" />
         </handlers>
       </system.webServer>
     </configuration>
    

    I Python 3.4:

     <configuration>
       <appSettings>
         <add key="WSGI_HANDLER" value="django.core.handlers.wsgi.WSGIHandler()" />
         <add key="PYTHONPATH" value="C:\inetpub\wwwroot\helloworld" />
         <add key="DJANGO_SETTINGS_MODULE" value="helloworld.settings" />
       </appSettings>
       <system.webServer>
         <handlers>
             <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python34\python.exe|C:\Python34\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
         </handlers>
       </system.webServer>
     </configuration>
    
  4. Uppdatera platsen för IIS-standardwebbplatsen så att den pekar på Django-projektmappen:

     %windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:"C:\inetpub\wwwroot\helloworld"
    
  5. Läs in webbsidan i webbläsaren.

A browser window displays the hello world page on Azure

Stäng av den virtuella Azure-datorn

När du är klar med den här självstudien rekommenderar vi att du stänger av eller tar bort den virtuella Azure-dator som du skapade för självstudien. Detta frigör resurser för andra självstudier och du kan undvika att debiteras azure-användning.