Nasazení webové aplikace v Pythonu (Django nebo Flask) pomocí PostgreSQL v Azure

V tomto kurzu nasadíte webovou aplikaci Pythonu řízenou daty (Django nebo Flask) do služby Aplikace Azure Service pomocí služby relační databáze Azure Database for PostgreSQL. služba Aplikace Azure podporuje Python v linuxovém serverovém prostředí

An architecture diagram showing an App Service with a PostgreSQL database in Azure.

K dokončení tohoto kurzu budete potřebovat:

  • Účet Azure s aktivním předplatným. Pokud účet Azure nemáte, můžete si ho zdarma vytvořit.
  • Znalost Pythonu s vývojem ve Flasku nebo Pythonu s vývojem v Django

Přeskočit na konec

S nainstalovaným rozhraním příkazového řádku pro vývojáře Azure můžete nasadit plně nakonfigurovanou ukázkovou aplikaci zobrazenou v tomto kurzu a zobrazit ji spuštěnou v Azure. Stačí spustit následující příkazy v prázdném pracovním adresáři:

azd auth login
azd init --template msdocs-flask-postgresql-sample-app
azd up

Ukázková aplikace

Ukázkové aplikace Pythonu využívající architekturu Flask a Django vám pomůžou postupovat podle tohoto kurzu. Pokud je chcete nasadit bez místního spuštění, přeskočte tuto část.

Pokud chcete aplikaci spustit místně, ujistěte se, že máte místně nainstalovaný Python 3.7 nebo novější a PostgreSQL . Potom naklonujte větev ukázkového úložiště starter-no-infra a přejděte do kořenového adresáře úložiště.

git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
cd msdocs-flask-postgresql-sample-app

Vytvořte soubor .env , jak je znázorněno níže, pomocí souboru .env.sample jako průvodce. Nastavte hodnotu DBNAME na název existující databáze v místní instanci PostgreSQL. Nastavte hodnoty parametru DBHOST, DBUSERa DBPASS podle potřeby pro místní instanci PostgreSQL.

DBNAME=<database name>
DBHOST=<database-hostname>
DBUSER=<db-user-name>
DBPASS=<db-password>

Vytvořte pro aplikaci virtuální prostředí:

py -m venv .venv
.venv\scripts\activate

Nainstalujte závislosti:

pip install -r requirements.txt

Spusťte ukázkovou aplikaci pomocí následujících příkazů:

# Run database migration
flask db upgrade
# Run the app at http://127.0.0.1:5000
flask run

1. Vytvoření služby App Service a PostgreSQL

git clone https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app.git

V tomto kroku vytvoříte prostředky Azure. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Database for PostgreSQL. Pro proces vytváření zadáte:

  • Název webové aplikace. Jedná se o název, který se používá jako součást názvu DNS pro webovou aplikaci ve formě https://<app-name>.azurewebsites.net.
  • Oblast, ve které se má aplikace spouštět fyzicky na světě.
  • Zásobník modulu runtime pro aplikaci. Tady vyberete verzi Pythonu, kterou chcete pro svou aplikaci použít.
  • Plán hostování aplikace. Je to cenová úroveň, která zahrnuje sadu funkcí a kapacitu škálování vaší aplikace.
  • Skupina prostředků pro aplikaci. Skupina prostředků umožňuje seskupovat (v logickém kontejneru) všechny prostředky Azure potřebné pro aplikaci.

Přihlaste se k webu Azure Portal a podle těchto kroků vytvořte prostředky služby Aplikace Azure Service.

Krok 1: Na webu Azure Portal:

  1. Do vyhledávacího panelu v horní části webu Azure Portal zadejte "databáze webové aplikace".
  2. Vyberte položku s popiskem Web App + Database pod nadpisem Marketplace . Můžete také přejít přímo do průvodce vytvořením.

A screenshot showing how to use the search box in the top tool bar to find the Web App + Database creation wizard (Flask).

Krok 2: Na stránce Vytvořit webovou aplikaci a databázi vyplňte formulář následujícím způsobem.

  1. Skupina prostředků → Vyberte vytvořit novou a použijte název msdocs-python-postgres-tutorial.
  2. Oblast → Libovolná oblast Azure blízko vás.
  3. Názevmsdocs-python-postgres-XYZ , kde XYZ je jakékoli tři náhodné znaky. Tento název musí být v rámci služby Azure jedinečný.
  4. Zásobník modulu runtime → Python 3.10
  5. Jako databázový stroj je ve výchozím nastavení vybrán databázovýFlexibilní server PostgreSQL. Název serveru a název databáze jsou také standardně nastavené na odpovídající hodnoty.
  6. Plán hostování → Basic. Až budete připraveni, můžete později vertikálně navýšit kapacitu na cenovou úroveň produkčního prostředí.
  7. Vyberte Zkontrolovat a vytvořit.
  8. Po dokončení ověření vyberte Vytvořit.

A screenshot showing how to configure a new app and database in the Web App + Database wizard (Flask).

Krok 3: Dokončení nasazení trvá několik minut. Po dokončení nasazení vyberte tlačítko Přejít k prostředku . Přejdete přímo do aplikace App Service, ale vytvoří se následující prostředky:

  • Skupina prostředků → Kontejner pro všechny vytvořené prostředky.
  • Plán služby App Service → Definuje výpočetní prostředky služby App Service. Vytvoří se plán Linuxu na úrovni Basic .
  • → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
  • Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
  • Flexibilní server Azure Database for PostgreSQL → přístupný pouze z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
  • Privátní DNS zónu → Umožňuje překlad DNS serveru PostgreSQL ve virtuální síti.

A screenshot showing the deployment process completed (Flask).

2. Ověření nastavení připojení

Průvodce vytvořením vygeneroval proměnné připojení, které už máte jako nastavení aplikace. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu. Až budete připraveni přesunout tajné kódy do bezpečnějšího umístění, tady je článek o ukládání ve službě Azure Key Vault.

Krok 1: Na stránce služby App Service v nabídce vlevo vyberte Konfigurace.

A screenshot showing how to open the configuration page in App Service (Flask).

Krok 2: Na kartě Nastavení aplikace na stránce Konfigurace ověřte, zda AZURE_POSTGRESQL_CONNECTIONSTRING je k dispozici. Ten se vloží do prostředí runtime jako proměnná prostředí.

A screenshot showing how to see the autogenerated connection string (Flask).

Krok 3: V terminálu nebo příkazovém řádku spusťte následující skript Pythonu, který vygeneruje jedinečný tajný kód: python -c 'import secrets; print(secrets.token_hex())'. Zkopírujte výstupní hodnotu, kterou chcete použít v dalším kroku.

3. Nasazení ukázkového kódu

V tomto kroku nakonfigurujete nasazení GitHubu pomocí GitHub Actions. Je to jen jeden z mnoha způsobů nasazení do služby App Service, ale také skvělý způsob, jak mít kontinuální integraci v procesu nasazení. Ve výchozím nastavení spustí každá git push z vašich úložišť GitHub akci sestavení a nasazení.

Krok 1: V novém okně prohlížeče:

  1. Přihlaste se k účtu GitHub.
  2. Přejděte na https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app.
  3. Vyberte Fork.
  4. Vyberte Vytvořit fork.

A screenshot showing how to create a fork of the sample GitHub repository (Flask).

Krok 2: Na stránce GitHubu otevřete Visual Studio Code v prohlížeči stisknutím klávesy . .

A screenshot showing how to open the Visual Studio Code browser experience in GitHub (Flask).

Krok 3: V editoru Visual Studio Code v prohlížeči otevřete v průzkumníku azureproject/production.py . Podívejte se na proměnné prostředí používané v produkčním prostředí, včetně nastavení aplikace, která jste viděli na stránce konfigurace.

A screenshot showing Visual Studio Code in the browser and an opened file (Flask).

Krok 4: Zpět na stránce služby App Service v nabídce vlevo vyberte Deployment Center.

A screenshot showing how to open the deployment center in App Service (Flask).

Krok 5: Na stránce Deployment Center:

  1. Ve zdroji vyberte GitHub. Ve výchozím nastavení je jako zprostředkovatel sestavení vybrán GitHub Actions .
  2. Přihlaste se ke svému účtu GitHub a postupujte podle pokynů k autorizaci Azure.
  3. V organizaci vyberte svůj účet.
  4. V úložišti vyberte msdocs-flask-postgresql-sample-app.
  5. Ve větvi vyberte hlavní.
  6. Ponechte výchozí možnost vybranou pro přidání pracovního postupu.
  7. V části Typ ověřování vyberte Identitu přiřazenou uživatelem.
  8. V horní nabídce vyberte Uložit. App Service potvrdí soubor pracovního postupu do zvoleného úložiště GitHub v .github/workflows adresáři.

A screenshot showing how to configure CI/CD using GitHub Actions (Flask).

Krok 6: Na stránce Deployment Center:

  1. Vyberte Protokoly. Spuštění nasazení je již spuštěno.
  2. V položce protokolu pro spuštění nasazení vyberte Sestavit/Nasadit protokoly.

A screenshot showing how to open deployment logs in the deployment center (Flask).

Krok 7: Přejdete do úložiště GitHub a zjistíte, že je spuštěná akce GitHubu. Soubor pracovního postupu definuje dvě samostatné fáze, sestavení a nasazení. Počkejte na spuštění GitHubu, aby se zobrazil stav Dokončeno. Trvá to asi 5 minut.

A screenshot showing a GitHub run in progress (Flask).

Máte problémy? Projděte si průvodce odstraňováním potíží.

4. Generování schématu databáze

S databází PostgreSQL chráněnou virtuální sítí je nejjednodušší způsob, jak spouštět migrace databází Flask, v relaci SSH s kontejnerem služby App Service.

Krok 1: Zpět na stránce služby App Service v nabídce vlevo

  1. Vyberte SSH.
  2. Vyberte Přejít.

A screenshot showing how to open the SSH shell for your app from the Azure portal (Flask).

Krok 2: V terminálu SSH spusťte flask db upgradepříkaz . Pokud proběhne úspěšně, služba App Service se úspěšně připojuje k databázi. Kromě restartování aplikace se můžou zachovat jenom změny v /home souborech. Změny mimo /home jiné se neuchovávají.

A screenshot showing the commands to run in the SSH shell and their output (Flask).

5. Přejděte do aplikace.

Krok 1: Na stránce služby App Service:

  1. V nabídce vlevo vyberte Přehled.
  2. Vyberte adresu URL aplikace. Můžete také přejít přímo na https://<app-name>.azurewebsites.net.

A screenshot showing how to launch an App Service from the Azure portal (Flask).

Krok 2: Přidejte do seznamu několik restaurací. Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Database for PostgreSQL.

A screenshot of the Flask web app with PostgreSQL running in Azure showing restaurants and restaurant reviews (Flask).

6. Streamování diagnostických protokolů

Aplikace Azure Služba zachytává všechny zprávy výstupu do konzoly, aby vám pomohla diagnostikovat problémy s aplikací. Ukázková aplikace obsahuje print() příkazy, které tuto funkci předvádějí, jak je znázorněno níže.

@app.route('/', methods=['GET'])
def index():
    print('Request for index page received')
    restaurants = Restaurant.query.all()
    return render_template('index.html', restaurants=restaurants)

Krok 1: Na stránce služby App Service:

  1. V nabídce vlevo vyberte protokoly služby App Service.
  2. V části Protokolování aplikace vyberte Systém souborů.
  3. V horní nabídce vyberte Uložit.

A screenshot showing how to enable native logs in App Service in the Azure portal.

Krok 2: V nabídce vlevo vyberte Stream protokolu. Zobrazí se protokoly pro vaši aplikaci, včetně protokolů platformy a protokolů z kontejneru.

A screenshot showing how to view the log stream in the Azure portal.

Přečtěte si další informace o protokolování v aplikacích Pythonu v řadě o nastavení služby Azure Monitor pro vaši aplikaci v Pythonu.

7. Vyčištění prostředků

Po dokončení můžete odstranit všechny prostředky z předplatného Azure odstraněním skupiny prostředků.

Krok 1: Na panelu hledání v horní části webu Azure Portal:

  1. Zadejte název skupiny prostředků.
  2. Vyberte tuto skupinu prostředků.

A screenshot showing how to search for and navigate to a resource group in the Azure portal.

Krok 2: Na stránce skupiny prostředků vyberte Odstranit skupinu prostředků.

A screenshot showing the location of the Delete Resource Group button in the Azure portal.

Krok 3:

  1. Potvrďte odstranění zadáním názvu skupiny prostředků.
  2. Vyberte Odstranit.

A screenshot of the confirmation dialog for deleting a resource group in the Azure portal. :

1. Vytvoření prostředků Azure a nasazení ukázkové aplikace

V tomto kroku vytvoříte prostředky Azure a nasadíte ukázkovou aplikaci do App Service v Linuxu. Kroky použité v tomto kurzu vytvoří sadu prostředků zabezpečených ve výchozím nastavení, které zahrnují App Service a Azure Database for PostgreSQL.

  1. Pokud jste to ještě neudělali, naklonujte větev ukázkového úložiště starter-no-infra v místním terminálu.

    git clone -b starter-no-infra https://github.com/Azure-Samples/msdocs-flask-postgresql-sample-app
    cd msdocs-flask-postgresql-sample-app
    

    Tato naklonovaná větev je vaším výchozím bodem. Obsahuje jednoduchou aplikaci Flask pro datovou jednotku.

  2. V kořenovém adresáři úložiště spusťte azd initpříkaz .

    azd init --template python-app-service-postgresql-infra
    
  3. Po zobrazení výzvy zadejte následující odpovědi:

    Otázka Odpověď
    Aktuální adresář není prázdný. Chcete zde inicializovat projekt v adresáři<>? Y
    Co chcete s těmito soubory dělat? Zachovat stávající soubory beze změny
    Zadejte nový název prostředí. Zadejte jedinečný název. Šablona azd používá tento název jako součást názvu DNS vaší webové aplikace v Azure (<app-name>.azurewebsites.net). Jsou povoleny alfanumerické znaky a spojovníky.
  4. Spuštěním azd up příkazu zřiďte potřebné prostředky Azure a nasaďte kód aplikace. Pokud ještě nejste přihlášení k Azure, prohlížeč se spustí a požádá vás o přihlášení. Příkaz azd up vás také vyzve k výběru požadovaného předplatného a umístění pro nasazení.

    azd up
    

    Dokončení azd up příkazu může trvat několik minut. Kód aplikace se také zkompiluje a nasadí, ale později kód upravíte tak, aby fungoval se službou App Service. Když je spuštěný, příkaz poskytuje zprávy o procesu zřizování a nasazení, včetně odkazu na nasazení v Azure. Po dokončení zobrazí příkaz také odkaz na aplikaci pro nasazení.

    Tato šablona azd obsahuje soubory (azure.yaml a adresář infrastruktury ), které ve výchozím nastavení generují zabezpečenou architekturu s následujícími prostředky Azure:

    • Skupina prostředků → Kontejner pro všechny vytvořené prostředky.
    • Plán služby App Service → Definuje výpočetní prostředky služby App Service. Je zadán plán Linuxu na úrovni B1 .
    • → App Service Představuje vaši aplikaci a běží v plánu služby App Service.
    • Virtuální síť → integrovaná s aplikací App Service a izoluje back-endový síťový provoz.
    • Flexibilní server Azure Database for PostgreSQL → přístupný pouze z virtuální sítě. Databáze a uživatel se pro vás vytvoří na serveru.
    • Privátní DNS zónu → Umožňuje překlad DNS serveru PostgreSQL ve virtuální síti.
    • Pracovní prostor služby Log Analytics → funguje jako cílový kontejner vaší aplikace k odeslání protokolů, kde můžete také dotazovat protokoly.

2. Použití připojovací řetězec databáze

Šablona azd, kterou používáte, vygenerovala proměnné připojení, které jste už použili jako nastavení aplikace, a vypíše je do terminálu, aby vám to vyhovuje. Nastavení aplikace je jedním ze způsobů, jak udržovat tajné kódy připojení mimo úložiště kódu.

  1. Ve výstupu azd vyhledejte nastavení aplikace a najděte nastavení AZURE_POSTGRESQL_CONNECTIONSTRING a AZURE_REDIS_CONNECTIONSTRING. Pokud chcete tajné kódy zachovat v bezpečí, zobrazí se jenom názvy nastavení. Ve výstupu azd vypadají takto:

     App Service app has the following settings:
    
             - AZURE_POSTGRESQL_CONNECTIONSTRING
             - AZURE_REDIS_CONNECTIONSTRING
             - FLASK_DEBUG
             - SCM_DO_BUILD_DURING_DEPLOYMENT
             - SECRET_KEY
     
  2. AZURE_POSTGRESQL_CONNECTIONSTRINGobsahuje připojovací řetězec do databáze Postgres v Azure a AZURE_REDIS_CONNECTIONSTRING obsahuje připojovací řetězec do mezipaměti Redis v Azure. Abyste se k němu mohli připojit, musíte ho použít. Otevřete azureproject/production.py, odkomentujte následující řádky a soubor uložte:

    conn_str = os.environ['AZURE_POSTGRESQL_CONNECTIONSTRING']
    conn_str_params = {pair.split('=')[0]: pair.split('=')[1] for pair in conn_str.split(' ')}
    DATABASE_URI = 'postgresql+psycopg2://{dbuser}:{dbpass}@{dbhost}/{dbname}'.format(
        dbuser=conn_str_params['user'],
        dbpass=conn_str_params['password'],
        dbhost=conn_str_params['host'],
        dbname=conn_str_params['dbname']
    )
    

    Kód aplikace je teď nakonfigurovaný tak, aby se připojil k databázi PostgreSQL v Azure. Pokud chcete, otevřete app.py a podívejte se, jak DATABASE_URI se používá proměnná prostředí.

  3. V terminálu spusťte azd deploy.

    azd deploy
    

4. Generování schématu databáze

S databází PostgreSQL chráněnou virtuální sítí je nejjednodušší způsob, jak spouštět migrace databází Flask, v relaci SSH s kontejnerem služby App Service.

  1. Ve výstupu Azd vyhledejte adresu URL relace SSH a přejděte na ni v prohlížeči. Ve výstupu to vypadá takto:

     Open SSH session to App Service container at: https://<app-name>.scm.azurewebsites.net/webssh/host
     
  2. V terminálu SSH spusťte flask db upgradepříkaz . Pokud proběhne úspěšně, služba App Service se úspěšně připojuje k databázi.

    A screenshot showing the commands to run in the SSH shell and their output (Flask).

    Poznámka:

    Kromě restartování aplikace se můžou zachovat jenom změny v /home souborech. Změny mimo /home jiné se neuchovávají.

5. Přejděte do aplikace.

  1. Ve výstupu azd vyhledejte adresu URL aplikace a přejděte na ni v prohlížeči. Adresa URL vypadá takto ve výstupu AZD:

     Deploying services (azd deploy)
    
       (✓) Done: Deploying service web
       - Endpoint: https://<app-name>.azurewebsites.net/
     
  2. Přidejte do seznamu několik restaurací.

    Blahopřejeme, spouštíte webovou aplikaci ve službě Aplikace Azure Service se zabezpečeným připojením ke službě Azure Database for PostgreSQL.

6. Streamování diagnostických protokolů

Aplikace Azure Služba může zaznamenávat protokoly konzoly, které vám pomůžou diagnostikovat problémy s aplikací. Pro usnadnění přístupu už šablona azd povolila protokolování do místního systému souborů a také je odesílá do pracovního prostoru služby Log Analytics.

Ukázková aplikace obsahuje print() příkazy k předvedení této funkce, jak je znázorněno v následujícím fragmentu kódu.

@app.route('/', methods=['GET'])
def index():
    print('Request for index page received')
    restaurants = Restaurant.query.all()
    return render_template('index.html', restaurants=restaurants)

Ve výstupu azd vyhledejte odkaz na streamování protokolů služby App Service a přejděte na něj v prohlížeči. Odkaz vypadá takto ve výstupu azd:

Stream App Service logs at: https://portal.azure.com/#@/resource/subscriptions/<subscription-guid>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name>/logStream

Přečtěte si další informace o protokolování v aplikacích Pythonu v řadě o nastavení služby Azure Monitor pro vaši aplikaci v Pythonu.

7. Vyčištění prostředků

Pokud chcete odstranit všechny prostředky Azure v aktuálním prostředí nasazení, spusťte azd downpříkaz .

azd down

Řešení problému

Níže jsou uvedené problémy, se kterými se můžete setkat při pokusu o práci v tomto kurzu a postupu při jejich řešení.

Nemůžu se připojit k relaci SSH

Pokud se nemůžete připojit k relaci SSH, nepovedlo se spustit samotnou aplikaci. Podrobnosti najdete v diagnostických protokolech . Pokud se například zobrazí nějaká chyba KeyError: 'AZURE_POSTGRESQL_CONNECTIONSTRING', může to znamenat, že proměnná prostředí chybí (možná jste odebrali nastavení aplikace).

Při spouštění migrací databází se zobrazí chyba

Pokud dojde k nějakým chybám souvisejícím s připojením k databázi, zkontrolujte, jestli nedošlo ke změně nastavení aplikace (AZURE_POSTGRESQL_CONNECTIONSTRING). Bez toho připojovací řetězec nemůže migrovat příkaz komunikovat s databází.

Nejčastější dotazy

Kolik stojí toto nastavení?

Ceny vytvořených prostředků jsou následující:

  • Plán služby App Service se vytvoří na úrovni Basic a dá se vertikálně navýšit nebo snížit. Podívejte se na ceny služby App Service.
  • Flexibilní server PostgreSQL se vytváří v nejnižší vrstvě s možností nárazového škálování Standard_B1ms s minimální velikostí úložiště, kterou je možné vertikálně navýšit nebo snížit. Podívejte se na ceny služby Azure Database for PostgreSQL.
  • Za virtuální síť se neúčtují poplatky, pokud nenakonfigurujete další funkce, jako je partnerský vztah. Podívejte se na ceny služby Azure Virtual Network.
  • Za privátní zónu DNS se účtují malé poplatky. Podívejte se na ceny Azure DNS.

Návody se připojit k serveru PostgreSQL, který je zabezpečený za virtuální sítí pomocí jiných nástrojů?

  • Základní přístup z nástroje příkazového řádku můžete spustit psql z terminálu SSH aplikace.
  • Pokud se chcete připojit z desktopového nástroje, musí být váš počítač ve virtuální síti. Může to být například virtuální počítač Azure, který je připojený k jedné z podsítí, nebo počítač v místní síti, který má připojení VPN typu site-to-site s virtuální sítí Azure.
  • Azure Cloud Shell můžete také integrovat s virtuální sítí.

Jak místní vývoj aplikací funguje s GitHub Actions?

Když jako příklad použijete automaticky vygenerovaný soubor pracovního postupu ze služby App Service, spustí se nové git push sestavení a nasazení. Z místního klonu úložiště GitHub provedete požadované aktualizace a nasdílíte je na GitHub. Příklad:

git add .
git commit -m "<some-message>"
git push origin main

Jak je ukázka Django nakonfigurovaná tak, aby běžela ve službě Aplikace Azure Service?

Poznámka:

Pokud budete postupovat společně s tímto kurzem s vlastní aplikací, podívejte se na popis souboru requirements.txt v souboru README.md každého projektu (Flask, Django) a podívejte se, jaké balíčky budete potřebovat.

Ukázková aplikace Django konfiguruje nastavení v souboru azureproject/production.py tak, aby se mohlo spustit ve službě Aplikace Azure Service. Tyto změny jsou běžné pro nasazení Django do produkčního prostředí, a ne specifické pro Službu App Service.

  • Django ověří hlavičku HTTP_HOST příchozích požadavků. Ukázkový kód používá proměnnou WEBSITE_HOSTNAME prostředí ve službě App Service k přidání názvu domény aplikace do nastavení ALLOWED_HOSTS Django.

    # Configure the domain name using the environment variable
    # that Azure automatically creates for us.
    ALLOWED_HOSTS = [os.environ['WEBSITE_HOSTNAME']] if 'WEBSITE_HOSTNAME' in os.environ else []
    
  • Django nepodporuje obsluhu statických souborů v produkčním prostředí. Pro účely tohoto kurzu použijete WhiteNoise k povolení obsluhy souborů. Balíček WhiteNoise byl již nainstalován s requirements.txt a jeho middleware se přidá do seznamu.

    
    # WhiteNoise configuration
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        # Add whitenoise middleware after the security middleware
        'whitenoise.middleware.WhiteNoiseMiddleware',
    

    Nastavení statického souboru se pak nakonfiguruje podle dokumentace Django.

    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
    

Další informace naleznete v tématu Produkční nastavení pro aplikace Django.

Další kroky

V dalším kurzu se dozvíte, jak zabezpečit aplikaci pomocí vlastní domény a certifikátu.

Zjistěte, jak App Service spouští aplikaci v Pythonu: