Delen 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 implementeren in Azure. Uw web-app kan puur Python zijn of een van de algemene op Python gebaseerde webframeworks gebruiken, zoals Django, Flaskof FastAPI-.

Python-web-apps die lokaal zijn ontwikkeld, kunnen worden geïmplementeerd in services zoals Azure App Service-, Azure Container Appsof Azure Static Web Apps. Er zijn veel opties voor implementatie. Voor de implementatie van App Service kunt u er bijvoorbeeld voor kiezen om te implementeren vanuit 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 de handleiding voor het instellen van uw ontwikkelomgeving te bekijken voor begeleiding bij het configureren 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 Visual Studio Code IDE (Integrated Development Environment) is een eenvoudige manier om Python-web-apps te ontwikkelen en te werken met Azure-resources die web-apps gebruiken.

Fooi

Zorg ervoor dat de Python-extensie is geïnstalleerd. Zie Aan de slag met Python in VS Codevoor 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 Extensions View 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 werken 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 de Azure Storage-, Azure Databasesen 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 trefwoordondersteuning 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.

Een schermopname van het opdrachtenpalet van Visual Studio Code voor 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 venv, kunt u met de Visual Studio Code Dev Container-extensie (op basis van de open Dev Container-specificatie) een Docker-container gebruiken als een volledig uitgeruste containeromgeving. 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 volledig 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 full-featured Integrated Development Environment (IDE) 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.

  • Zie in het algemeen Visual Studio | Python-documentatie voor alle documentatie met betrekking tot het gebruik van Python in Visual Studio 2022.

  • Zie voor installatiestappen Python-ondersteuning installeren in Visual Studio die u begeleidt bij het installeren van de Python-workload in Visual Studio 2022.

  • Zie Quickstart: Uw eerste Python-web-app maken met Visual Studiovoor algemene werkstroom voor het gebruik van Python voor webontwikkeling. Dit artikel is handig voor informatie over het bouwen van een volledig nieuwe Python-webtoepassing (maar bevat geen implementatie in Azure).

  • Zie Azure Development met Visual Studiovoor het gebruik van Visual Studio 2022 voor het beheren van Azure-resources en implementeren in Azure. Hoewel veel van de documentatie hier specifiek .NET vermeldt, werkt de hulpprogramma's voor het beheren van Azure-resources en implementeren in Azure hetzelfde, ongeacht de programmeertaal.

  • Wanneer er geen ingebouwd hulpprogramma beschikbaar is in Visual Studio 2022 voor een bepaalde Azure-beheer- of implementatietaak, kunt u altijd Azure CLI-opdrachtengebruiken.

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 opdracht az webapp up. 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.

Een schermopname van de PyCharm IDE met een Azure CLI-opdracht voor het implementeren van een 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:

Bevelen Beschrijving
az webapp Hiermee beheert u web-apps. Bevat de subopdrachten en om respectievelijk een webapp te maken en om te maken en implementeren vanuit 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 om een resourcegroep te maken waarin uw Azure-resources moeten worden geplaatst.
az appservice Beheert App Service-plannen.
az config Hiermee beheert u de 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 Servicevoor meer informatie over dit voorbeeld.

Houd er rekening mee dat u voor sommige van uw Azure-werkstroom ook de Azure CLI kunt gebruiken vanuit een Azure Cloud Shell-. Azure Cloud Shell is een interactieve, geverifieerde, browser toegankelijke shell voor het beheren 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) gebruiken voor Python. 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 aanbevolen procedures 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 uw requirements.txt bestand.

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 dat u de DefaultAzureCredential- in het azure-identity-pakket gebruikt. 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)

De DefaultAzureCredential zoekt op vooraf gedefinieerde locaties naar 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 Pythonvoor 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-, Flaskof 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: Frameworks downloaden met pip-.

pip install Django

stap 2: een hallo wereld-app maken.

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: de code lokaal uitvoeren.

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