Share via


Uw lokale omgeving configureren voor het implementeren van Python-web-apps in Azure

Dit artikel begeleidt u bij het instellen van uw lokale omgeving voor het ontwikkelen van Python-web-apps en het implementeren ervan in Azure. Uw web-app kan puur Python zijn of een van de algemene python-webframeworks gebruiken, zoals Django, Flask of FastAPI.

Python-web-apps die lokaal zijn ontwikkeld, kunnen worden geïmplementeerd in services zoals Azure-app Service, Azure Container Apps of Azure Static Web Apps. Er zijn veel opties voor implementatie. Voor de implementatie van App Service kunt u bijvoorbeeld kiezen uit code, een Docker-container of een statische web-app. Als u implementeert vanuit code, kunt u implementeren met Visual Studio Code, met de Azure CLI, vanuit een lokale Git-opslagplaats of met GitHub-acties. Als u in een Docker-container implementeert, kunt u dit doen vanuit Azure Container Registry, Docker Hub of een persoonlijk register.

Voordat u verdergaat met dit artikel, raden we u aan om de ontwikkelomgeving in te stellen voor hulp bij het instellen van uw ontwikkelomgeving voor Python en Azure. Hieronder bespreken we de installatie en configuratie die specifiek zijn voor de ontwikkeling van Python-web-apps.

Nadat u de lokale omgeving hebt ingesteld voor de ontwikkeling van Python-web-apps, bent u klaar om deze artikelen aan te pakken:

Werken met Visual Studio Code

De IDE (Integrated Development Environment) van Visual Studio Code is een eenvoudige manier om Python-web-apps te ontwikkelen en te werken met Azure-resources die web-apps gebruiken.

Tip

Zorg ervoor dat u de Python-extensie hebt geïnstalleerd. Zie Aan de slag met Python in VS Code voor een overzicht van het werken met Python in VS Code.

In VS Code werkt u met Azure-resources via VS Code-extensies. U kunt extensies installeren vanuit de weergave Extensies of de toetsencombinatie Ctrl+Shift+X. Voor Python-web-apps werkt u waarschijnlijk met een of meer van de volgende extensies:

  • Met de Azure-app Service-extensie kunt u communiceren met Azure-app Service vanuit Visual Studio Code. App Service biedt volledig beheerde hosting voor webtoepassingen, waaronder websites en web-API's.

  • Met de Azure Static Web Apps-extensie kunt u Azure Static Web Apps rechtstreeks vanuit VS Code maken. Static Web Apps is serverloos en een goede keuze voor het hosten van statische inhoud.

  • Als u van plan bent om met containers te werken, installeert u het volgende:

    • De Docker-extensie voor het lokaal bouwen en werken met containers. U kunt bijvoorbeeld een in een container geplaatste Python-web-app uitvoeren in Azure-app Service met behulp van Web Apps for Containers.

    • De Azure Container Apps-extensie voor het maken en implementeren van apps in containers rechtstreeks vanuit Visual Studio Code.

  • Er zijn andere extensies, zoals azure Storage, Azure Databases en Azure Resources-extensies . U kunt deze en andere extensies altijd indien nodig toevoegen.

Extensies in Visual Studio Code zijn toegankelijk zoals u zou verwachten in een typische IDE-interface en met uitgebreide ondersteuning voor trefwoorden met behulp van het OPDRACHTENpalet van VS Code. Gebruik de toetsencombinatie Ctrl+Shift+P om het opdrachtenpalet te openen. Het opdrachtenpalet is een goede manier om alle mogelijke acties te bekijken die u op een Azure-resource kunt uitvoeren. In de onderstaande schermopname ziet u enkele acties voor App Service.

A screenshot of the Visual Studio Code command palette for App Service.

Werken met Dev Containers in Visual Studio Code

Python-ontwikkelaars vertrouwen vaak op virtuele omgevingen om een geïsoleerde en zelfstandige omgeving te maken voor een specifiek project. Met virtuele omgevingen kunnen ontwikkelaars afhankelijkheden, pakketten en Python-versies afzonderlijk beheren voor elk project, waardoor conflicten tussen verschillende projecten worden vermeden die mogelijk verschillende pakketversies vereisen.

Hoewel er populaire opties beschikbaar zijn in Python voor het beheren van omgevingen zoals virtualenv of, kunt u met de Dev Container-extensie van Visual Studio Code (op basis van de open Dev Container-specificatie) een Docker-container gebruiken als een volledige containeromgevingvenv. Hiermee kunnen ontwikkelaars een consistente en eenvoudig reproduceerbare hulpprogrammaketen definiëren met alle benodigde hulpprogramma's, afhankelijkheden en vooraf geconfigureerde extensies. Dit betekent dat als u systeemvereisten, shellconfiguraties of andere talen gebruikt, u een Dev-container kunt gebruiken om al deze onderdelen van uw project expliciet te configureren die zich buiten een eenvoudige Python-omgeving kunnen bevinden.

Een ontwikkelaar kan bijvoorbeeld één Dev-container configureren om alles op te nemen dat nodig is om aan een project te werken, inclusief een PostgreSQL-databaseserver, samen met de projectdatabase en voorbeeldgegevens, een Redis-server, Nginx, front-endcode, clientbibliotheken zoals React, enzovoort. Bovendien bevat de container de projectcode, de Python-runtime en alle Python-projectafhankelijkheden met de juiste versies. Ten slotte kan de container Visual Studio Code-extensies opgeven die moeten worden geïnstalleerd, zodat het hele team dezelfde hulpprogramma's beschikbaar heeft. Dus wanneer een nieuwe ontwikkelaar lid wordt van het team, is de hele omgeving, inclusief hulpprogramma's, afhankelijkheden en gegevens, klaar om te worden gekloond naar hun lokale computer en kunnen ze meteen aan de slag gaan.

Zie Ontwikkelen in een container.

Werken met Visual Studio 2022

Visual Studio 2022 is een volledige IDE (Integrated Development Environment) met ondersteuning voor het ontwikkelen van Python-toepassingen en veel ingebouwde hulpprogramma's en extensies voor toegang tot en implementatie in Azure-resources. Hoewel de meeste documentatie voor het bouwen van Python-web-apps op Azure gericht is op het gebruik van Visual Studio Code, is Visual Studio 2022 een uitstekende optie als u deze al hebt geïnstalleerd, bent u vertrouwd met het gebruik ervan en gebruikt u deze voor .NET- of C++-projecten.

Werken met andere IDE's

Als u in een andere IDE werkt die geen expliciete ondersteuning voor Azure heeft, kunt u de Azure CLI gebruiken om Azure-resources te beheren. In de onderstaande schermopname is een eenvoudige Flask-web-app geopend in de PyCharm IDE. De web-app kan worden geïmplementeerd in een Azure-app Service met behulp van de az webapp up opdracht. In de schermopname wordt de CLI-opdracht uitgevoerd in de in PyCharm ingesloten terminalemulator. Als uw IDE geen ingesloten emulator heeft, kunt u een terminal en dezelfde opdracht gebruiken. De Azure CLI moet op uw computer zijn geïnstalleerd en in beide gevallen toegankelijk zijn.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

Azure CLI-opdrachten

Wanneer u lokaal werkt met web-apps met behulp van de Azure CLI-opdrachten , werkt u meestal met de volgende opdrachten:

Opdracht Beschrijving
az webapp Hiermee beheert u web-apps. Bevat de subopdrachten die worden gemaakt voor het maken van een web-app en het maken en implementeren van een lokale werkruimte
az container app Beheert Azure Container Apps.
az staticwebapp Beheert Azure Static Web Apps.
az group Beheert resourcegroepen en sjabloonimplementaties. Gebruik de subopdracht maken voor een resourcegroep om uw Azure-resources in te zetten.
az appservice Beheert App Service-plannen.
az config Beheerde Azure CLI-configuratie. Als u toetsaanslagen wilt opslaan, kunt u een standaardlocatie of resourcegroep definiëren die automatisch door andere opdrachten wordt gebruikt.

Hier volgt een voorbeeld van een Azure CLI-opdracht om een web-app en bijbehorende resources te maken en deze in één opdracht te implementeren in Azure met behulp van az webapp up. Voer de opdracht uit in de hoofdmap van uw web-app.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Zie Quickstart: Een Python-web-app (Django of Flask) implementeren in Azure-app Service voor meer informatie over dit voorbeeld.

Houd er rekening mee dat u voor een deel van uw Azure-werkstroom ook de Azure CLI kunt gebruiken vanuit een Azure Cloud Shell. Azure Cloud Shell is een interactieve, geverifieerde en vanuit de browser toegankelijke shell voor het beheer van Azure-resources.

Azure SDK-sleutelpakketten

In uw Python-web-apps kunt u programmatisch verwijzen naar Azure-services met behulp van de Azure SDK voor Python. Deze SDK wordt uitgebreid besproken in de sectie De Azure-bibliotheken (SDK) voor Python gebruiken. In deze sectie noemen we kort enkele belangrijke pakketten van de SDK die u gaat gebruiken in webontwikkeling. En we laten een voorbeeld zien van de best practice voor het verifiëren van uw code met Azure-resources.

Hieronder ziet u enkele van de pakketten die vaak worden gebruikt bij het ontwikkelen van web-apps. U kunt pakketten rechtstreeks in uw virtuele omgeving installeren met pip. Of plaats de naam van de Python-pakketindex (Pypi) in het bestand requirements.txt .

SDK-documenten Installeren Python-pakketindex
Azure Identity pip install azure-identity azure-identity
Azure Storage-blobs pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault-geheimen pip install azure-keyvault-secrets azure-keyvault-secrets

Met het azure-identity-pakket kan uw web-app worden geverifieerd met Microsoft Entra-id. Voor verificatie in uw web-app-code is het raadzaam om de DefaultAzureCredential in het azure-identity pakket te gebruiken. Hier volgt een voorbeeld van hoe u toegang krijgt tot Azure Storage. Het patroon is vergelijkbaar voor andere Azure-resources.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

Het DefaultAzureCredential ziet er op vooraf gedefinieerde locaties voor accountgegevens, bijvoorbeeld in omgevingsvariabelen of vanuit de Azure CLI-aanmelding. Zie Python-apps verifiëren bij Azure-services met behulp van de Azure SDK voor Python voor Python voor uitgebreide informatie over de DefaultAzureCredential logica.

Webframeworks op basis van Python

In de ontwikkeling van Python-web-apps werkt u vaak met op Python gebaseerde webframeworks. Deze frameworks bieden functionaliteit zoals paginasjablonen, sessiebeheer, databasetoegang en eenvoudige toegang tot HTTP-aanvraag- en antwoordobjecten. Met frameworks kunt u voorkomen dat u het wiel opnieuw moet uitvinden voor algemene functionaliteit.

Drie algemene Python-webframeworks zijn Django, Flask of FastAPI. Deze en andere webframeworks kunnen worden gebruikt met Azure.

Hieronder ziet u een voorbeeld van hoe u snel aan de slag kunt gaan met deze frameworks lokaal. Als u deze opdrachten uitvoert, krijgt u uiteindelijk een toepassing, hoewel dit een eenvoudige toepassing is die kan worden geïmplementeerd in Azure. Voer deze opdrachten uit in een virtuele omgeving.

Stap 1: Download de frameworks met pip.

pip install Django

Stap 2: Maak een hallo wereld-app.

Maak een voorbeeldproject met behulp van de opdracht django-admin startproject . Het project bevat een manage.py-bestand dat het toegangspunt is voor het uitvoeren van de app.

django-admin startproject hello_world

Stap 3: Voer de code lokaal uit.

Django gebruikt WSGI om de app uit te voeren.

python hello_world\manage.py runserver

Stap 4: Blader door de hallo wereld-app.

http://127.0.0.1:8000/

Voeg op dit moment een requirements.txt-bestand toe en vervolgens kunt u de web-app implementeren in Azure of deze in een container plaatsen met Docker en vervolgens implementeren.

Volgende stappen