Django Hello World web em um Windows Server VM

Importante

Os VM clássicos serão retirados a 1 de março de 2023.

Se utilizar recursos iaaS da ASM, por favor preencha a sua migração até 1 de março de 2023. Encorajamo-lo a fazer a troca mais cedo para aproveitar as muitas melhorias de funcionalidades em Azure Resource Manager.

Para mais informações, consulte a Migração dos seus recursos iaaS para a Azure Resource Manager até 1 de março de 2023.

Nota

O Azure tem dois modelos de implementação diferentes para criar e trabalhar com recursos: Azure Resource Manager e a versão clássica modelo. Este artigo descreve a implantação clássica modelo. Recomendamos que a maioria dos novos destacamentos utilizem o Resource Manager modelo.

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

Este tutorial mostra-lhe como hospedar um website baseado em Django em Windows Server em Azure Máquinas Virtuais. No tutorial, não assumimos nenhuma experiência prévia com o Azure. Quando terminar o tutorial, pode ter uma aplicação baseada em Django em funcionamento na nuvem.

Aprenda a:

  • Crie uma máquina virtual Azure para acolher Django. Embora este tutorial explique como fazê-lo para Windows Server, você pode fazer o mesmo para um Linux VM hospedado em Azure.
  • Crie uma nova aplicação Django em Windows.

O tutorial mostra-lhe como construir uma aplicação web Hello World básica. A aplicação está hospedada numa máquina virtual Azure.

A imagem que se segue mostra a aplicação completa:

A browser window displays the hello world page in Azure

Nota

Para concluir este tutorial, precisa de uma conta do Azure. Pode ativar os benefícios do seu assinante MSDN ou inscrever-se para um teste gratuito em Azure.

Criar e montar uma máquina virtual Azure para acolher Django

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

  2. Desconfiem do Azure para dirigir o tráfego da porta 80 da web para a porta 80 na máquina virtual:

    1. No portal do Azure, vá ao painel de instrumentos e selecione a sua máquina virtual recém-criada.
    2. Clique em Pontos finais e, em seguida, clique em Adicionar.

    Add an endpoint

    1. Na página 'Adicionar ponto final ', para nome, insira HTTP. Coloque as portas públicas e privadas da TCP em 80.

    Enter name and set public and private ports

    1. Clique em OK.
  3. No painel de instrumentos, selecione o seu VM. Para utilizar o Protocolo de Ambiente de Trabalho Remoto (RDP) para iniciar seducamente na máquina virtual Azure, clique Ligação.

Importante

As seguintes instruções pressupõem que se inscreveu corretamente na máquina virtual. Também assumem que está a emitir comandos na máquina virtual e não no computador local.

Instale Python, Django e WFastCGI

Nota

Para descarregar usando o Internet Explorer, poderá ter de configurar as definições de configuração de segurança melhorada do Internet Explorer. Para isso, clique em Iniciar>Ferramentas Administrativas>Gestor de Servidor>Local Server. Clique na configuração de segurança melhorada do IE e, em seguida, selecione Off.

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

  2. Instale os pacotes de wfastcgi e django utilizando pip.

    Para Python 2.7, utilize o seguinte comando:

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

    Para Python 3.4, utilize o seguinte comando:

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

Instalar IIS com FastCGI

  • Instale Serviços de Informação Internet (IIS) com suporte FastCGI. Isto pode levar vários minutos para ser executado.

      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 uma nova aplicação Django

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

    Para Python 2.7, utilize o seguinte comando:

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

    Para Python 3.4, utilize o seguinte comando:

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

    The result of the New-AzureService command

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

    • helloworld\manage.py ajuda-o a começar a hospedar e a parar de hospedar o seu website baseado em Django.
    • helloworld\helloworld\settings.py tem configurações de Django para a sua aplicação.
    • helloworld\helloworld\urls.py tem o código de mapeamento entre cada URL e a sua visão.
  3. No diretório C:\inetpub\wwwroot\helloworld,,criar um novo ficheiro chamado views.py. Este ficheiro tem a vista que torna a página "Olá mundo". No seu editor de código, insira 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 ficheiro urls.py pelos seguintes comandos:

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

Configurar o IIS

  1. No ficheiro global de applicationhost.config, desbloqueie a secção de manipuladores. Isto permite que o seu ficheiro web.config utilize o manipulador Python. Adicione este comando:

     %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
    
  2. Ativar o WFastCGI. Isto adiciona uma aplicação ao ficheiro global applicationhost.config, que se refere ao seu Python intérprete executável e ao script wfastcgi.py.

    Em Python 2.7:

     C:\python27\scripts\wfastcgi-enable
    

    Em Python 3.4:

     C:\python34\scripts\wfastcgi-enable
    
  3. Em C:\inetpub\wwwroot\helloworld, crie um ficheiro web.config. O valor do scriptProcessor atributo deve coincidir com a saída do passo anterior. Para obter mais informações sobre a definição de wfastcgi, consulte pypi wfastcgi.

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

    Em 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 a localização do website padrão do 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 no seu navegador.

A browser window displays the hello world page on Azure

Desligue a sua máquina virtual Azure

Quando terminar este tutorial, recomendamos que desligue ou remova o VM Azure que criou para o tutorial. Isto liberta recursos para outros tutoriais, e você pode evitar incorrer em taxas de uso Azure.