App Web Hello World Django in una macchina virtuale Windows ServerDjango Hello World web app on a Windows Server VM

Importante

Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Azure Resource Manager e il modello di distribuzione classica.Azure has two different deployment models for creating and working with resources: Azure Resource Manager and the classic deployment model. Questo articolo illustra il modello di distribuzione classica.This article describes the classic deployment model. Per le distribuzioni più recenti si consiglia di usare il modello di Resource Manager.We recommend that most new deployments use the Resource Manager model.

A partire dal 15 novembre 2017, le macchine virtuali saranno disponibili solo nel portale di Azure.Starting November 15, 2017, Virtual Machines will be available only in the Azure portal.

In questa esercitazione viene illustrato come ospitare un sito Web basato su Django in Windows Server nelle macchine virtuali di Azure.This tutorial shows you how to host a Django-based website in Windows Server in Azure Virtual Machines. Nell'esercitazione si presuppone che l'utente non abbia mai usato Azure.In the tutorial, we assume no prior experience with Azure. Al termine dell'esercitazione, si disporrà di un'applicazione basata su Django in esecuzione nel cloud.When you finish the tutorial, you can have a Django-based application up and running in the cloud.

È possibile passare agli argomenti seguenti:Learn how to:

  • Configurare una macchina virtuale di Azure per l'hosting di Django.Set up an Azure virtual machine to host Django. Sebbene nell'esercitazione la procedura venga illustrata in Windows Server, è possibile eseguirla anche con una macchina virtuale Linux ospitata in Azure.Although this tutorial explains how to do this for Windows Server, you can do the same for a Linux VM hosted in Azure.
  • Creare una nuova applicazione Django in Windows.Create a new Django application in Windows.

Nell'esercitazione viene illustrato come compilare una semplice applicazione Web Hello World,The tutorial shows you how to build a basic Hello World web application. ospitata in una macchina virtuale di Azure.The application is hosted in an Azure virtual machine.

In questo screenshot viene visualizzata l'applicazione completata:The following screenshot shows the completed application:

Finestra del browser con la pagina hello world visualizzata in Azure

Nota

Per completare l'esercitazione, è necessario un account Azure.To complete this tutorial, you need an Azure account. È possibile attivare i vantaggi della sottoscrizione MSDN oppure iscriversi per ottenere una versione di valutazione gratuita in Azure.You can activate your MSDN subscriber benefits or sign up for a free trial in Azure.

Creare e configurare una macchina virtuale di Azure per l'hosting di DjangoCreate and set up an Azure virtual machine to host Django

  1. Per creare una macchina virtuale di Azure con la distribuzione di Windows Server 2012 R2 Datacenter, vedere Creare una macchina virtuale con Windows nel portale di Azure.To create an Azure virtual machine with the Windows Server 2012 R2 Datacenter distribution, see Create a virtual machine running Windows in the Azure portal.
  2. Impostare Azure in modo da dirigere il traffico della porta 80 proveniente dal Web alla porta 80 della macchina virtuale:Set Azure to direct port 80 traffic from the web to port 80 on the virtual machine:

    1. Nel portale di Azure passare al dashboard e selezionare la macchina virtuale appena creata.In the Azure portal, go to the dashboard and select your newly created virtual machine.
    2. Far clic su Endpoint e selezionare Aggiungi.Click Endpoints, and then click Add.

      Aggiungere un endpoint

    3. Nella pagina Aggiungi endpoint immettere HTTP nel campo Nome.On the Add endpoint page, for Name, enter HTTP. Impostare le porte TCP pubblica e privata su 80.Set the public and private TCP ports to 80.

      Immettere il nome e impostare le porte pubblica e privata

    4. Fare clic su OK.Click OK.

  3. Nel dashboard selezionare la VM.In the dashboard, select your VM. Per usare Remote Desktop Protocol (RDP) per accedere in modalità remota alla macchina virtuale di Azure appena creata, fare clic su Connetti.To use Remote Desktop Protocol (RDP) to remotely sign in to the newly created Azure virtual machine, click Connect.

Importante

Per le istruzioni seguenti, si suppone che l'accesso alla macchina virtuale sia stato eseguito correttamenteThe following instructions assume that you signed in to the virtual machine correctly. e che i comandi vengano inviati dalla macchina virtuale e non dal computer locale.They also assume that you are issuing commands in the virtual machine and not on your local computer.

Installare Python, Django e WFastCGI Install Python, Django, and WFastCGI

Nota

Per il download tramite Internet Explorer potrebbe essere necessario configurarne le impostazioni di Sicurezza avanzata.To download by using Internet Explorer, you might have to configure Internet Explorer Enhanced Security Configuration settings. A tale scopo, fare clic su Start > Strumenti di amministrazione > Server Manager > Server locale.To do this, click Start > Administrative Tools > Server Manager > Local Server. Fare clic su Configurazione sicurezza avanzata IE e quindi disattivare l'opzione.Click IE Enhanced Security Configuration, and then select Off.

  1. Installare le versioni più recenti di Python 2.7 o Python 3.4 da python.org.Install the latest versions of Python 2.7 or Python 3.4 from python.org.
  2. Installare i pacchetti wfastcgi e django usando pip.Install the wfastcgi and django packages using pip.

    Per Python 2.7, usare il comando seguente:For Python 2.7, use the following command:

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

    Per Python 3.4, usare il comando seguente:For Python 3.4, use the following command:

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

Installare IIS con FastCGIInstall IIS with FastCGI

  • Installare Internet Information Services (IIS) con il supporto FastCGI.Install Internet Information Services (IIS) with FastCGI support. L'esecuzione può richiedere alcuni minuti.This might take several minutes to execute.

      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
    

Creare una nuova applicazione DjangoCreate a new Django application

  1. Per creare un nuovo progetto Django, immettere in C:\inetpub\wwwroot il comando seguente:In C:\inetpub\wwwroot, to create a new Django project, enter the following command:

    Per Python 2.7, usare il comando seguente:For Python 2.7, use the following command:

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

    Per Python 3.4, usare il comando seguente:For Python 3.4, use the following command:

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

    Risultato del comando New-AzureService

  2. Il comando django-admin genera una struttura di base per i siti Web basati su Django:The django-admin command generates a basic structure for Django-based websites:

    • helloworld\manage.py consente di avviare e arrestare l'hosting del sito Web basato su Django.helloworld\manage.py helps you start hosting and stop hosting your Django-based website.
    • helloworld\helloworld\settings.py contiene le impostazioni di Django per l'applicazione.helloworld\helloworld\settings.py has Django settings for your application.
    • helloworld\helloworld\urls.py contiene il codice di mapping tra ogni URL e la relativa visualizzazione.helloworld\helloworld\urls.py has the mapping code between each URL and its view.
  3. Creare un nuovo file denominato views.py nella directory C:\inetpub\wwwroot\helloworld\helloworld.In the C:\inetpub\wwwroot\helloworld\helloworld directory, create a new file named views.py. Questo file conterrà la visualizzazione del rendering della pagina "hello world".This file has the view that renders the "hello world" page. Nell'editor del codice immettere i comandi seguenti:In your code editor, enter the following commands:

    from django.http import HttpResponse
    def home(request):
        html = "<html><body>Hello World!</body></html>"
        return HttpResponse(html)
    
  4. Sostituire il contenuto del file urls.py con i comandi seguenti:Replace the contents of the urls.py file with the following commands:

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

Configurare IISSet up IIS

  1. Nel file applicationhost.config globale sbloccare la sezione dei gestori.In the global applicationhost.config file, unlock the handlers section. In questo modo si consentirà al file web.config di usare il gestore Python.This allows your web.config file to use the Python handler. Aggiungere questo comando:Add this command:

     %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
    
  2. Attivare WFastCGI.Activate WFastCGI. In questo modo si aggiungerà un'applicazione al file applicationhost.config globale che fa riferimento all'eseguibile dell'interprete Python e allo script wfastcgi.py.This adds an application to the global applicationhost.config file, which refers to your Python interpreter executable and the wfastcgi.py script.

    In Python 2.7:In Python 2.7:

     C:\python27\scripts\wfastcgi-enable
    

    In Python 3.4:In Python 3.4:

     C:\python34\scripts\wfastcgi-enable
    
  3. Creare un file web.config in C:\inetpub\wwwroot\helloworld.In C:\inetpub\wwwroot\helloworld, create a web.config file. Il valore dell'attributo scriptProcessor deve corrispondere all'output del passaggio precedente.The value of the scriptProcessor attribute should match the output from the preceding step. Per altre informazioni sull'impostazione di wfastcgi, vedere pypi wfastcgi.For more information about the wfastcgi setting, see pypi wfastcgi.

    In Python 2.7:In 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>
    

    In Python 3.4:In 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. Aggiornare la posizione del sito Web predefinito IIS in modo che punti alla cartella del progetto Django:Update the location of the IIS default website to point to the Django project folder:

     %windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:"C:\inetpub\wwwroot\helloworld"
    
  5. Caricare la pagina Web nel browser.Load the webpage in your browser.

Finestra del browser con la pagina hello world visualizzata in Azure

Arrestare la macchina virtuale di AzureShut down your Azure virtual machine

Al termine dell'esercitazione è consigliabile arrestare o rimuovere la macchina virtuale di Azure creata per l'esercitazione.When you're done with this tutorial, we recommend that you shut down or remove the Azure VM you created for the tutorial. Ciò consente di liberare risorse per altre esercitazioni ed evitare di incorrere in costi di utilizzo di Azure.This frees up resources for other tutorials, and you can avoid incurring Azure usage charges.