Zelfstudie: Een Django-web-app implementeren met PostgreSQL met behulp van de Azure Portal
Met behulp Azure Portal kunt u een gegevensgestuurde Python Django-web-app implementeren om Azure App Service te maken en deze te verbinden met een Azure Database for PostgreSQL-database. U kunt beginnen met een gratis prijscategorie die op elk moment omhoog kan worden geschaald. U kunt ook de PostgresSQL Flexible Server (preview) proberen door de bovenstaande optie te selecteren. Flexible Server biedt een eenvoudiger implementatiemechanisme en lagere lopende kosten.
Met behulp van Azure Portal kunt u een gegevensgestuurde Python Django-web-app implementeren naar Azure App Service en deze verbinden met een Azure Database for PostgreSQL Flexible Server-database (preview). U kunt beginnen met een gratis prijscategorie die op elk moment omhoog kan worden geschaald. Als u PostgreSQL Flexible Server (Preview) niet kunt gebruiken, selecteert u de bovenstaande optie Enkele server.
De code van de web-app is in dit geval afkomstig uit GitHub-opslagplaats en u configureert de web-app voor continue implementatie vanuit GitHub. Zodra de configuratie is geconfigureerd, kunt u verder ontwikkelen op uw lokale computer en wijzigingen aanbrengen in de opslagplaats. De web-app in Azure implementeert deze wijzigingen vervolgens automatisch.
In deze zelfstudie gebruikt u de Azure Portal om de volgende taken uit te voeren:
- Een web-app in Azure inrichten die wordt geïmplementeerd vanuit een GitHub-repo
- Een PostgreSQL-server en -database inRichten in Azure en deze verbinden met de web-app.
- Werk uw code bij en commit wijzigingen om automatisch opnieuw te worden GitHub.
- Diagnostische logboeken weergeven
- De web-app in Azure Portal beheren
U kunt ook de op Azure CLI gebaseerde versie van deze zelfstudie gebruiken.
- Een web-app in Azure inrichten die vanuit een GitHub implementeert.
- Een PostgreSQL Flexible Server en database inRichten in Azure en deze verbinden met de web-app.
- Werk uw code bij en commit wijzigingen om automatisch opnieuw te worden GitHub.
- Diagnostische logboeken weergeven.
- Beheer de web-app in de Azure Portal.
U kunt ook de op Azure CLI gebaseerde versie van deze zelfstudie gebruiken.
De voorbeeldopslagplaats vorken
Navigeer in een browser naar https://github.com/Azure-Samples/djangoapp en fork de opslagplaats in uw eigen GitHub account.
U maakt een fork van deze opslagplaats, zodat u wijzigingen kunt aanbrengen en de code in een latere stap opnieuw kunt uitvoeren.
(Optioneel) Over het voorbeeld: Het djangoapp-voorbeeld bevat de gegevensgestuurde Django-polls-app die u krijgt door Uw eerste Django-app schrijven te volgen in de Django-documentatie. Het voorbeeld wordt ook gewijzigd met behulp van de Django-implementatiecontrolelijst om uit te voeren in een productieomgeving zoals Azure App Service. (Deze wijzigingen zijn voor elke productieomgeving en zijn niet specifiek voor Azure.)
- Productie-instellingen bevinden zich in het bestand azuresite/production.py. De ontwikkelingsgegevens bevinden zich in azuresite/settings.py.
- De app gebruikt productie-instellingen wanneer de
WEBSITE_HOSTNAME-omgevingsvariabele is ingesteld. Azure App Service stelt deze variabele automatisch in op de URL van de web-app, zoalsmsdocs-django.azurewebsites.net.
Ondervindt u problemen? Laat het ons weten.
De PostgreSQL-databaseserver inrichten in Azure
Open de Azure Portal.
Selecteer Een resource maken,waarmee de pagina Nieuw wordt geopend.
Zoek en selecteer Azure Database for PostgreSQLen selecteer vervolgens Maken.
Selecteer op de volgende pagina Maken onderEnkele server.
Voer op de pagina Enkele server de volgende gegevens in:
Veld Waarde Abonnement Selecteer het abonnement dat u wilt gebruiken als dit af verschilt van de standaardinstelling. Resourcegroep Selecteer Nieuwe maken en voer 'DjangoPostgres-Tutorial-rg' in. Servernaam Een naam voor de databaseserver die uniek is in Heel Azure (de URL van de databaseserver wordt https://<server-name>.postgres.database.azure.com). Toegestane tekensA-Zzijn ,0-9en-. Een goed patroon is om een combinatie van uw bedrijfsnaam en server-id te gebruiken.Gegevensbron Geen Locatie Selecteer een locatie bij u in de buurt. Versie Laat de standaardwaarde staan (dit is de nieuwste versie). Compute en opslag Selecteer Server configurerenen selecteer vervolgens Basic en Gen 5. Stel vCore in op 1, stel Storage in op 5 GB en selecteer ok. Met deze opties wordt de minst dure server ingericht die beschikbaar is voor PostgreSQL in Azure. Mogelijk hebt u ook een tegoed in uw Azure-account dat de kosten van de server dekt. Gebruikersnaam van beheerder, Wachtwoord, Wachtwoord bevestigen Voer referenties in voor een beheerdersaccount op de databaseserver. Neem deze referenties op, want u hebt ze later in deze zelfstudie nodig. Opmerking: gebruik niet het $teken in de gebruikersnaam of het wachtwoord. Later maakt u omgevingsvariabelen met deze waarden, waarbij het$-teken een speciale betekenis heeft in de Linux-container die wordt gebruikt om Python-apps uit te voeren.Selecteer Controleren en maken en vervolgens Maken. Het duurt enkele minuten voordat Azure de web-app heeft ingericht.
Nadat het inrichten is voltooid, selecteert u Ga naar resource om de overzichtspagina voor de databaseserver te openen.
De PostgreSQL Flexible Server-databaseserver inrichten in Azure
Open de Azure Portal.
Selecteer Een resource maken,waarmee de pagina Nieuw wordt geopend.
Zoek en selecteer Azure Database for PostgreSQL flexibele serversen selecteer vervolgens Maken.
Ga op de volgende pagina naar het vak Flexibele server (preview) en selecteer Maken.
Voer op de pagina Enkele server de volgende gegevens in:
Veld Waarde Abonnement Selecteer het abonnement dat u wilt gebruiken als dit af verschilt van de standaardinstelling. Resourcegroep Selecteer Nieuwe maken en voer 'DjangoPostgres-Tutorial-rg' in. Servernaam Een naam voor de databaseserver die uniek is in Heel Azure (de URL van de databaseserver wordt https://<server-name>.postgres.database.azure.com). Toegestane tekensA-Zzijn ,0-9en-. Een goed patroon is om een combinatie van uw bedrijfsnaam en server-id te gebruiken.Region Selecteer een locatie bij u in de buurt. Type werkbelasting Ontwikkeling als u alleen experimenteert, anders een geschikte productieoptie. Compute en opslag Laat de standaardwaarde Burstable, B1msstaan. Dit is de minst dure optie, tenzij u betere prestaties wilt. Beschikbaarheidszone, hoge beschikbaarheid, PostgreSQL-versie Laat de standaardwaarden staan. Gebruikersnaam van beheerder, Wachtwoord, Wachtwoord bevestigen Voer referenties in voor een beheerdersaccount op de databaseserver. Neem deze referenties op, want u hebt ze later in deze zelfstudie nodig. Opmerking: gebruik het teken niet $in de gebruikersnaam of het wachtwoord. Later maakt u omgevingsvariabelen met deze waarden, waarbij het$-teken een speciale betekenis heeft in de Linux-container die wordt gebruikt om Python-apps uit te voeren.Selecteer Volgende: Netwerken en stel op die pagina Connectiviteitsmethode in op Openbare toegang en schakel vervolgens onder Firewallregels het selectievakje Openbare toegang vanuit een Azure-servicebinnen Azure tot deze server toestaan in.
Selecteer Controleren en maken en vervolgens Maken. Het duurt enkele minuten voordat Azure de databaseserver heeft ingericht.
Nadat het inrichten is voltooid, selecteert u Ga naar resource om de overzichtspagina voor de databaseserver te openen.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
De pollsdb-database maken op de PostgreSQL-server
In deze sectie maakt u verbinding met de databaseserver in de Azure Cloud Shell en gebruikt u een PostgreSQL-opdracht om een pollsdb-database op de server te maken. Deze database wordt verwacht door de code van de voorbeeld-app.
Selecteer op de overzichtspagina voor de PostgreSQL-server de optie Verbindingsbeveiliging (onderInstellingen aan de linkerkant).

Voor Toegang tot Azure-service toestaan selecteert u Ja voor Selecteer de knop met het label Toevoegen 0.0.0.0 - 255.255.255.255.Selecteer vervolgens Doorgaan in het pop-upbericht dat wordt weergegeven, gevolgd door Opslaan bovenaan de pagina. Met deze acties voegt u een regel toe waarmee u verbinding kunt maken met de databaseserver vanuit de Cloud Shell en SSH (zoals u in een latere sectie doet om Django-gegevensmodelmigraties uit te voeren).
Open het Azure Cloud Shell vanuit Azure Portal door het pictogram Cloud Shell boven aan het venster te selecteren:

Voer in Cloud Shell de volgende opdracht uit:
psql --host=<server-name>.postgres.database.azure.com --port=5432 --username=<user-name>@<server-name> --dbname=postgresVervang
<server-name>en door de namen die in de vorige sectie zijn gebruikt bij het<user-name>configureren van de server. Houd er rekening mee dat de volledige gebruikersnaamwaarde die voor Postgres is vereist,<user-name>@<server-name>is.U kunt de bovenstaande opdracht kopiëren en in Cloud Shell plakken met de rechtermuisknop en plakken selecteren.
Voer het beheerderswachtwoord in wanneer u hier om wordt gevraagd.
Wanneer de shell verbinding maakt, ziet u de prompt
postgres=>. Deze prompt geeft aan dat u bent verbonden met de standaard beheerdatabase met de naam 'postgres'. (De database postgres is niet bedoeld voor app-gebruik.)Voer bij de prompt de opdracht
CREATE DATABASE pollsdb;uit. Zorg ervoor dat u de laatste puntkomma op te nemen, waarmee de opdracht wordt voltooid.Als de database is gemaakt, wordt met de opdracht
CREATE DATABASEweergegeven. Voer uit om te controleren of de database is\c pollsdbgemaakt. Met deze opdracht wordt de prompt gewijzigd inpollsdb=>, wat aangeeft dat de opdracht is geslaagd.Sluit psql af door de opdracht uit te
exitvoeren.
Open het Azure Cloud Shell vanuit Azure Portal door het pictogram Cloud Shell boven aan het venster te selecteren:

Voer in Cloud Shell de volgende opdracht uit:
psql --host=<server-url>.postgres.database.azure.com --port=5432 --username=<user-name> --dbname=postgresVervang
<server-name>en door de namen die in de vorige sectie zijn gebruikt bij het<user-name>configureren van de server.U kunt de bovenstaande opdracht kopiëren en in de Cloud Shell plakken door met de rechtermuisknop te klikken en plakken te selecteren. Bewerk vervolgens de opdracht om de benodigde waarden te vervangen.
Voer het beheerderswachtwoord in wanneer u hier om wordt gevraagd.
Wanneer de shell verbinding maakt, ziet u de prompt
postgres=>. Deze prompt geeft aan dat u bent verbonden met de standaard beheerdatabase met de naam 'postgres'. (De database postgres is niet bedoeld voor app-gebruik.)Voer bij de prompt de opdracht
CREATE DATABASE pollsdb;uit. Zorg ervoor dat u de laatste puntkomma op te nemen, waarmee de opdracht wordt voltooid.Als de database is gemaakt, wordt met de opdracht
CREATE DATABASEweergegeven. Voer uit om te controleren of de database is\c pollsdbgemaakt. Met deze opdracht wordt de prompt gewijzigd inpollsdb=>, wat aangeeft dat de opdracht is geslaagd.Sluit psql af door de opdracht uit te
exitvoeren.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
De web-app inrichten in Azure
Open een nieuw browservenster of tabblad met de Azure Portal. U gebruikt een nieuw tabblad om de databasepagina geopend te houden, omdat u bepaalde gegevens van de databasepagina naar de web-app-pagina moet overdragen.
Selecteer Een resource maken,waarmee de pagina Nieuw wordt geopend.
Zoek en selecteer Web-appen selecteer vervolgens Maken.
Voer op de pagina Web-app maken de volgende gegevens in:
Veld Waarde Abonnement Selecteer het abonnement dat u wilt gebruiken als dit verschilt van de standaardinstelling. Resourcegroep Selecteer de groep DjangoPostgres-Tutorial-rg die u in de vorige sectie hebt gemaakt. Naam van app Een naam voor uw web-app die uniek is in Azure (de URL van de app is https://<app-name>.azurewebsites.net). Toegestane tekens zijnA-Z0-9, en-. Het is handig om een combinatie van uw bedrijfsnaam en een app-id te gebruiken.Publiceren Selecteer Code. Runtimestack Selecteer Python 3.8 in de vervolgkeuzelijst. Region Selecteer een locatie bij u in de buurt. Linux-plan In de portal wordt dit veld gevuld met een App Service plannaam op basis van uw resourcegroep. Als u de naam wilt wijzigen, selecteert u Nieuwe maken. SKU en grootte Gebruik voor de beste prestaties het standaardabonnement, hoewel dit kosten met zich mee brengt in uw abonnement. Als u kosten wilt voorkomen, selecteert u Grootte wijzigen,selecteert u Vervolgens Dev/Test,selecteert u B1 (30 dagen gratis) en selecteert u vervolgens Toepassen. U kunt het plan later schalen voor betere prestaties. Selecteer Beoordelen en makenen selecteer vervolgens Maken. Het inrichten van de web-app in Azure duurt enkele minuten.
Nadat het inrichten is voltooid, selecteert u Ga naar resource om de overzichtspagina voor de web-app te openen. Houd dit browservenster of tabblad geopend voor latere stappen.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
De app verbinden met de database
In deze sectie maakt u instellingen voor de web-app die nodig is om verbinding te maken met de pollsdb database. Deze instellingen worden in de app-code weergegeven als omgevingsvariabelen. (Zie Omgevingsvariabelen openen voor meer informatie.)
Selecteer op de portalpagina voor de web-app uit de vorige sectie configuratie (onderInstellingen aan de linkerkant) en selecteer vervolgens Toepassingsinstellingen boven aan de pagina.

Gebruik de knop Nieuwe toepassingsinstelling om instellingen te maken voor elk van de volgende waarden (die worden verwacht door het djangoapp-voorbeeld):
Naam van de instelling Waarde DBHOST De naam van de databaseserver uit de vorige sectie; dat wil zeggen, het <server-name>gedeelte van de URL van de server dat voorafgaat aan.postgres.database.azure.com. (Met de code in azuresite/production.py wordt de volledige URL automatisch samengesteld.)DBNAME pollsdbDBUSER De gebruikersnaam van de beheerder die is gebruikt bij het inrichten van de database. (Met de voorbeeldcode wordt het gedeelte automatisch @<server-name>toegevoegd. Zie@<server-name>.)DBPASS Het beheerderswachtwoord dat u eerder hebt gemaakt. Zoals eerder vermeld, moet u het teken in de gebruikersnaam of het wachtwoord niet gebruiken, omdat dat teken is uitgesloten in omgevingsvariabelen in de Linux-container die als host voor
$Python-apps wordt gebruikt.Selecteer Opslaan en vervolgens Doorgaan om de instellingen toe te passen.
Belangrijk
Het is essentieel dat u Opslaan selecteert nadat u wijzigingen in de instellingen heeft aangebracht. Instellingen die u maakt met de knop Nieuwe toepassingsinstelling worden pas toegepast als u Opslaan gebruikt.
Selecteer op de portalpagina voor de web-app uit de vorige sectie configuratie (onderInstellingen aan de linkerkant) en selecteer vervolgens Toepassingsinstellingen boven aan de pagina.

Gebruik de knop Nieuwe toepassingsinstelling om instellingen te maken voor elk van de volgende waarden (die worden verwacht door het djangoapp-voorbeeld):
Naam van de instelling Waarde DBHOST De URL van de databaseserver uit de vorige sectie; dat wil zeggen, de <server-name>.postgres.database.azure.com.DBNAME pollsdbDBUSER De gebruikersnaam van de beheerder die is gebruikt bij het inrichten van de database. DBPASS Het beheerderswachtwoord dat u eerder hebt gemaakt. Zoals eerder is vermeld, moet u het teken niet gebruiken in de gebruikersnaam of het wachtwoord, omdat dat teken is uitgesloten in omgevingsvariabelen in de Linux-container die als host voor
$Python-apps wordt gebruikt.Selecteer Opslaan en vervolgens Doorgaan om de instellingen toe te passen.
Belangrijk
Het is essentieel dat u Opslaan selecteert nadat u wijzigingen in de instellingen heeft aangebracht. Instellingen die u maakt met de knop Nieuwe toepassingsinstelling worden pas toegepast als u Opslaan gebruikt.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
App-code implementeren in de web-app vanuit een opslagplaats
Nu de database- en verbindingsinstellingen zijn ingesteld, kunt u de web-app configureren om code rechtstreeks vanuit een GitHub implementeren.
Selecteer in het browservenster of tabblad voor de web-app Implementatiecentrum (onder Implementatie aan de linkerkant).
Selecteer in het besturingselement Bron de GitHub selecteer vervolgens Autor( indien nodig). Volg vervolgens de aanmeldingsprompts of selecteer Doorgaan om uw huidige aanmeldingsgegevens GitHub gebruiken.
Als er een pop-upvenster wordt weergegeven met de tekst verificatie is geslaagd, maar in de portal nog steeds de knop Autorisatie wordt weergegeven, vernieuwt u de pagina en wordt uw GitHub-aanmelding weergegeven in het GitHub vak. Schakel het GitHub opnieuw in en selecteer vervolgens Doorgaan.
Selecteer in GitHub sectie de volgende waarden:
Veld Waarde Organisatie Het GitHub account waarvoor u de voorbeeldopslagplaats hebt gevorkt. Opslagplaats djangoapp Vertakking Bij gebruik van Single Server: master
Bij gebruik van Flexible Server: flexible-serverSelecteer Opslaan om de build- en implementatiewerkstroom te activeren. Ga naar Acties in uw opslagplaats GitHub djangoapp om de voortgang te controleren. Azure moet de code implementeren en de app starten.
App Service detecteert een Django-project door te zoeken naar een wsgi.py bestand in elke submap. Wanneer App Service dat bestand heeft gevonden, wordt de Django web-app geladen. Zie Ingebouwde Python-installatiekopie configureren voor meer informatie.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
Django-databasemigraties uitvoeren
Nu de code is geïmplementeerd en de database is geïmplementeerd, is de app bijna klaar voor gebruik. Het enige dat overblijft, is het vaststellen van het benodigde schema in de database zelf. U doet dit door de gegevensmodellen in de Django-app te 'migreren' naar de database.
Selecteer in het browservenster of tabblad voor de web-app SSH (onder Ontwikkelprogramma's aan de linkerkant) en selecteer vervolgens Go om een SSH-console te openen op de web-app-server. Het kan een minuut duren om voor het eerst verbinding te maken, omdat de web-app-container moet worden starten.
Als de
lsopdracht slechts één bestand met de naamlsis de implementatie nog niet voltooid in de vorige stap. Controleer de acties in uw opslagplaats GitHub status. Zodra de build is voltooid, moet de opdracht de bestanden van de app tonen, met namelsls.Voer in de -console databasemigraties uit:
python manage.py migrateAls er fouten optreden die betrekking hebben op het maken van verbinding met de database,controleert u de waarden van de toepassingsinstellingen die zijn gemaakt in Verbinding maken database .
Maak een beheerderslogo voor de app:
python manage.py createsuperuserDe
createsuperuseropdracht vraagt u om django superuser (of beheerder)-referenties, die worden gebruikt in de web-app. Gebruik voor deze zelfstudie de standaard gebruikersnaam , druk op Enter om het e-mailadres leeg te latenrooten voer in alsrootPollsdb1wachtwoord.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
Een poll-vraag maken in de app
U bent nu klaar om een snelle test van de app uit te voeren om te laten zien dat deze werkt met de PostgreSQL-database.
Ga in het browservenster of tabblad voor de web-app terug naar de pagina Overzicht en selecteer vervolgens de URL voor de web-app (van het formulier ).
De app moet de berichten 'Polls-app' en 'Er zijn geen polls beschikbaar' weergeven, omdat de database nog geen specifieke polls bevat.
Blader naar (de pagina Django-beheer) en meld u aan met de
http://<app-name>.azurewebsites.net/adminDjango-superuser-referenties uit de vorige sectie (rootenPollsdb1).Selecteer onder PollsToevoegen naast Vragen en maak een poll-vraag met enkele antwoordmogelijkheden.
Ga opnieuw naar
http://<app-name>.azurewebsites.net/om te controleren of de gebruiker nu de vragen te zien krijgt. Beantwoord vragen zoals u wilt om wat gegevens de genereren in de database.
Gefeliciteerd U werkt met een Python Django-web-app in Azure App Service voor Linux, met een actieve PostgreSQL-database.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
De app bijwerken en opnieuw implementeren
Zoals eerder in deze zelfstudie is beschreven, wordt uw app-code in Azure opnieuw uitgevoerd wanneer u wijzigingen aan de opslagplaats GitHub doorgevoerd.
Als u de gegevensmodellen van de Django-app wijzigt, moet u deze wijzigingen echter migreren naar de database:
Verbinding maken opnieuw naar de web-app via SSH, zoals beschreven onder Django-databasemigraties uitvoeren.
Voer de migraties opnieuw uit met
python manage.py migrate.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
Diagnostische logboeken weergeven
U hebt toegang tot de consolelogboeken die zijn gegenereerd vanuit de container die de app host in Azure.
Selecteer op de pagina van de web-app in Azure Portal logboekstream (onderBewaking aan de linkerkant). De logboeken worden weergegeven als console-uitvoer.
U kunt ook de logboekbestanden van de browser inspecteren op https://<app-name>.scm.azurewebsites.net/api/logs/docker.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
Resources opschonen
U kunt de app en database actief laten, zolang u wilt voor verdere ontwikkelwerkzaamheden. Verwijder anders de resourcegroep die voor deze zelfstudie is gemaakt, om doorlopende kosten te voorkomen:
Voer op Azure Portal 'DjangoPostgres-Tutorial-rg' in de zoekbalk boven aan het venster in en selecteer vervolgens dezelfde naam onder Resourcegroepen.
Selecteer Resourcegroep verwijderen op de pagina van de resourcegroep.
Voer de naam van de resourcegroep in wanneer u hier om wordt gevraagd en selecteer Verwijderen.
Ondervindt u problemen? Raadpleeg eerst de Handleiding voor het oplossen van problemen. Als u er niet uitkomt, laat het ons weten.
Volgende stappen
Ontdek hoe App Service een Python-app uitvoert: