Django Hello World webové aplikace na virtuálním počítači s Windows Serverem

Důležité

Klasické virtuální počítače budou vyřazeny 1. března 2023.

Pokud používáte prostředky IaaS z ASM, dokončete migraci do 1. března 2023. Doporučujeme, abyste přechod zpřesnit dříve, abyste využili řadu vylepšení funkcí v Azure Resource Manageru.

Další informace najdete v tématu Migrace prostředků IaaS do Azure Resource Manageru do 1. března 2023.

Poznámka

Azure má dva různé modely nasazení pro vytváření a práci s prostředky: Azure Resource Manager a model nasazení Classic. Tento článek popisuje model nasazení Classic. Doporučujeme, aby většina nových nasazení používala model Resource Manager.

Od 15. listopadu 2017 budou virtuální počítače k dispozici pouze v Azure Portal.

V tomto kurzu se dozvíte, jak hostovat web založený na Django na Windows Serveru ve službě Azure Virtual Machines. V tomto kurzu předpokládáme, že nemáme žádné předchozí zkušenosti s Azure. Po dokončení kurzu můžete mít aplikaci založenou na Django spuštěnou v cloudu.

Naučte se:

  • Nastavte virtuální počítač Azure pro hostování Django. I když tento kurz vysvětluje, jak to udělat pro Windows Server, můžete to udělat pro virtuální počítač s Linuxem hostovaným v Azure.
  • V Windows vytvořte novou aplikaci Django.

V tomto kurzu se dozvíte, jak vytvořit základní Hello World webovou aplikaci. Aplikace je hostovaná na virtuálním počítači Azure.

Následující snímek obrazovky ukazuje dokončenou aplikaci:

A browser window displays the hello world page in Azure

Poznámka

K dokončení tohoto kurzu potřebujete mít účet Azure. Výhody předplatitele MSDN můžete aktivovat nebo si zaregistrovat bezplatnou zkušební verzi v Azure.

Vytvoření a nastavení virtuálního počítače Azure pro hostování Django

  1. Pokud chcete vytvořit virtuální počítač Azure s distribucí datového centra Windows Server 2012 R2, přečtěte si téma Vytvoření virtuálního počítače se spuštěným Windows v Azure Portal.

  2. Nastavte Azure na směrování provozu portu 80 z webu na port 80 na virtuálním počítači:

    1. V Azure Portal přejděte na řídicí panel a vyberte nově vytvořený virtuální počítač.
    2. Klikněte na Koncové body a potom na Přidat.

    Add an endpoint

    1. Na stránce Přidat koncový bod zadejte názevHTTP. Nastavte veřejné a privátní porty TCP na 80.

    Enter name and set public and private ports

    1. Klikněte na OK.
  3. Na řídicím panelu vyberte virtuální počítač. Pokud chcete pomocí protokolu RDP (Remote Desktop Protocol) vzdáleně přihlásit k nově vytvořenému virtuálnímu počítači Azure, klikněte na Připojení.

Důležité

Následující pokyny předpokládají, že jste se k virtuálnímu počítači přihlásili správně. Předpokládá se také, že vydáváte příkazy ve virtuálním počítači, a ne na místním počítači.

Instalace Pythonu, Django a WFastCGI

Poznámka

Pokud chcete stáhnout pomocí Internet Exploreru, možná budete muset nakonfigurovat nastavení konfigurace rozšířeného zabezpečení aplikace Internet Explorer. Chcete-li to provést, klepněte na tlačítko Spustit>nástroje> pro správu Správce serveru>Local Server. Klepněte na tlačítko Konfigurace rozšířeného zabezpečení IE a pak vyberte Vypnuto.

  1. Nainstalujte nejnovější verze Pythonu 2.7 nebo Pythonu 3.4 z python.org.

  2. Nainstalujte balíčky wfastcgi a django pomocí pipu.

    Pro Python 2.7 použijte následující příkaz:

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

    Pro Python 3.4 použijte následující příkaz:

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

Instalace služby IIS pomocí FastCGI

  • Nainstalujte Internetová informační služba (IIS) s podporou FastCGI. Spuštění může trvat několik minut.

      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
    

Vytvoření nové aplikace Django

  1. Do složky C:\inetpub\wwwroot vytvořte nový projekt Django zadáním následujícího příkazu:

    Pro Python 2.7 použijte následující příkaz:

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

    Pro Python 3.4 použijte následující příkaz:

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

    The result of the New-AzureService command

  2. Příkaz django-admin vygeneruje základní strukturu pro weby založené na Django:

    • helloworld\manage.pyvám pomůže začít hostovat a přestat hostovat váš Django web.
    • helloworld\helloworld\settings.pymá Django nastavení pro vaši aplikaci.
    • helloworld\helloworld\urls.py má kód mapování mezi každou adresou URL a jeho zobrazením.
  3. V adresáři C:\inetpub\wwwroot\helloworld\helloworld vytvořte nový soubor s názvem views.py. Tento soubor obsahuje zobrazení, které vykresluje stránku "hello world". V editoru kódu zadejte následující příkazy:

    from django.http import HttpResponse
    def home(request):
        html = "<html><body>Hello World!</body></html>"
        return HttpResponse(html)
    
  4. Obsah souboru urls.py nahraďte následujícími příkazy:

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

Nastavení služby IIS

  1. V globálním souboru applicationhost.config odemkněte oddíl obslužných rutin. To umožňuje, aby váš soubor web.config používal obslužnou rutinu Pythonu. Přidejte tento příkaz:

     %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
    
  2. Aktivujte WFastCGI. Tím se přidá aplikace do globálního souboru applicationhost.config, který odkazuje na spustitelný soubor interpreta Pythonu a skript wfastcgi.py.

    V Pythonu 2.7:

     C:\python27\scripts\wfastcgi-enable
    

    V Pythonu 3.4:

     C:\python34\scripts\wfastcgi-enable
    
  3. V souboru C:\inetpub\wwwroot\helloworld vytvořte soubor web.config. Hodnota atributu scriptProcessor by měla odpovídat výstupu z předchozího kroku. Další informace o nastavení wfastcgi naleznete v pypi wfastcgi.

    V Pythonu 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>
    

    V Pythonu 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. Aktualizujte umístění výchozího webu služby IIS tak, aby odkazovat na složku projektu Django:

     %windir%\system32\inetsrv\appcmd set vdir "Default Web Site/" -physicalPath:"C:\inetpub\wwwroot\helloworld"
    
  5. Načtěte webovou stránku v prohlížeči.

A browser window displays the hello world page on Azure

Vypnutí virtuálního počítače Azure

Až budete s tímto kurzem hotovi, doporučujeme vypnout nebo odebrat virtuální počítač Azure, který jste vytvořili pro tento kurz. Tím se uvolní prostředky pro další kurzy a můžete se vyhnout poplatkům za využití Azure.