Aplicativo web Django Olá, Mundo em uma VM do Windows Server

Importante

As VMs clássicas serão desativadas em 1º de março de 2023.

Se você usa os recursos de IaaS do ASM, realize a migração até 1º de março de 2023. Recomendamos que faça a migração o quanto antes para aproveitar as inúmeras melhorias feitas no Azure Resource Manager.

Para mais informações, confira Migrar os recursos de IaaS para o Azure Resource Manager até 1º de março de 2023.

Observação

O Azure tem dois modelos de implantação diferentes para criar e trabalhar com recursos: Azure Resource Manager e o modelo de implantação clássico. Este artigo descreve o modelo de implantação clássico. Recomendamos que a maioria das novas implantações use o modelo do Resource Manager.

A partir de 15 de novembro de 2017, as máquinas virtuais estarão disponíveis somente no portal do Azure.

Este tutorial mostra como hospedar um site baseado em Django no Windows Server em Máquinas Virtuais do Azure. No tutorial, supomos que não há nenhuma experiência anterior com o Azure. Quando concluir o tutorial, você pode ter um aplicativo baseado em Django funcionando na nuvem.

Saiba como:

  • Configure uma máquina virtual Azure para hospedar o Django. Embora este tutorial explique como fazer isso para Windows Server, você pode fazer o mesmo para uma VM do Linux hospedada no Azure.
  • Criar um novo aplicativo Django no Windows.

O tutorial mostra como criar um aplicativo Web Olá, Mundo básico. O aplicativo é hospedado em uma máquina virtual do Azure.

A captura de tela a seguir mostra o aplicativo concluído:

A browser window displays the hello world page in Azure

Observação

Para concluir este tutorial, você precisa de uma conta do Azure. Você pode ativar os benefícios de assinante MSDN ou inscrever-se para uma avaliação gratuita no Azure.

Criar e configurar uma máquina virtual do Azure para hospedar o Django

  1. Para criar uma máquina virtual do Azure com a distribuição Windows Server 2012 R2, consulte Criar uma máquina virtual que executa Windows no portal do Azure.

  2. Configure o Azure para direcionar o tráfego da porta 80 da web para a porta 80 na máquina virtual:

    1. No portal do Azure, vá para o painel e selecione sua máquina virtual recém-criada.
    2. Clique em Pontos de Extremidade e depois em Adicionar.

    Add an endpoint

    1. Na página Adicionar ponto de extremidade, para Nome, digite HTTP. Defina as portas TCP pública e privada para 80.

    Enter name and set public and private ports

    1. Clique em OK.
  3. No painel, selecione a sua VM. Para usar o Protocolo da Área de Trabalho Remota (RDP) para fazer logon remotamente na máquina virtual recém-criada do Azure, clique em Conectar.

Importante

As instruções a seguir pressupõem que você conectou-se à máquina virtual corretamente. Elas também supõem que você esteja emitindo comandos na máquina virtual e não no computador local.

Instalar Python, Django e WFastCGI

Observação

Para baixar usando o Internet Explorer, talvez você precise configurar as definições de Configuração de Segurança Aprimorada do Internet Explorer. Para fazer isso, clique em Iniciar>Ferramentas Administrativas>Gerenciador do Servidor>Local Server. Clique em Configuração de Segurança Aprimorada do IEe, em seguida, selecione Desativada.

  1. Instalar as versões mais recentes do Python 2.7 ou Python 3.4 a partir do python.org.

  2. Instale os pacotes wfastcgi e django usando pip.

    No Python 2.7, use o comando a seguir:

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

    No Python 3.4, use o comando a seguir:

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

Instale o IIS com o FastCGI

  • Instale os Serviços de Informações da Internet (IIS) com suporte do FastCGI. Isso pode levar alguns minutos.

      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
    

Criar um novo aplicativo Django

  1. Em C:\inetpub\wwwroot, digite o seguinte comando para criar um novo projeto de Django:

    No Python 2.7, use o comando a seguir:

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

    No Python 3.4, use o comando a seguir:

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

    The result of the New-AzureService command

  2. O comando django-admin gera uma estrutura básica para sites da web baseados em Django:

    • helloworld\manage.py ajuda a iniciar a hospedagem e parar a hospedagem do seu site da web baseado em Django.
    • helloworld\helloworld\settings.py tem configurações do Django para seu aplicativo.
    • helloworld\helloworld\urls.py tem o código de mapeamento entre cada URL e sua exibição.
  3. No diretório C:\inetpub\wwwroot\helloworld\helloworld, crie um novo arquivo chamado views.py. Esse arquivo contém a exibição que renderiza a página “Olá, Mundo”. Em seu editor de código, digite os seguintes comandos:

    from django.http import HttpResponse
    def home(request):
        html = "<html><body>Hello World!</body></html>"
        return HttpResponse(html)
    
  4. Substitua o conteúdo do arquivo urls.py pelos seguintes comandos:

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

Configurar IIS

  1. Desbloqueie a seção de manipuladores no arquivo applicationhost.config global. Isso permite que o arquivo web.config use o manipulador de Python. Adicione este comando:

     %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
    
  2. Ative o WFastCGI. Isso adiciona um aplicativo ao applicationhost.config global que se refere ao seu interpretador de Python executável e ao script wfastcgi.py.

    No Python 2.7:

     C:\python27\scripts\wfastcgi-enable
    

    No Python 3.4:

     C:\python34\scripts\wfastcgi-enable
    
  3. Crie um arquivo web.config em C:\inetpub\wwwroot\helloworld. O valor do atributo scriptProcessor deve corresponder à saída da etapa anterior. Para obter mais informações sobre a configuração de wfastcgi, consulte pypi wfastcgi.

    No 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>
    

    No 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. Atualize o local do site da Web padrão IIS para apontar para a pasta do projeto Django:

     %windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:"C:\inetpub\wwwroot\helloworld"
    
  5. Carregue a página da Web no seu navegador.

A browser window displays the hello world page on Azure

Desligar a máquina virtual do Azure

Quando você concluir este tutorial, é recomendável desligar ou remover a VM do Azure que você criou para o tutorial. Isso libera os recursos para outros tutoriais e você pode evitar incorrer em encargos de uso do Azure.