Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leest u hoe u uw lokale omgeving instelt voor het ontwikkelen van Python web-apps en deze implementeert in Azure. Uw web-app kan puur Python zijn of een van de algemene webframeworks op basis van Python gebruiken, zoals Django, Flask of FastAPI.
U kunt Python web-apps implementeren die lokaal zijn ontwikkeld voor 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 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 behulp van Visual Studio Code, de Azure CLI, een lokale Git-opslagplaats of GitHub acties. Als u in een Docker-container implementeert, kunt u dit doen vanuit Azure Container Registry, Docker Hub of een persoonlijk register.
Lees voordat u verdergaat met dit artikel de Set up your dev environment voor hulp bij het instellen van uw ontwikkelomgeving voor Python en Azure. In de volgende secties worden de instellingen en configuratie besproken die specifiek zijn voor het ontwikkelen van Python web-apps.
Nadat u uw lokale omgeving hebt ingesteld voor Python ontwikkeling van web-apps, kunt u deze artikelen aanpakken:
- Quickstart: Maak een Python-web-app (Django of Flask) in Azure App Service.
- Tutorial: Een Python-web-app (Django of Flask) implementeren met PostgreSQL in Azure
- Een Flask-web-app maken en implementeren in Azure met een door het systeem toegewezen beheerde identiteit
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 door web-apps worden gebruikt.
Fooi
Zorg ervoor dat u de extensie Python installeert. Zie voor een overzicht van het werken met Python in VS Code Getting Started with 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 met behulp van de toetsencombinatie Ctrl+Shift+X. Voor Python web-apps werkt u waarschijnlijk met een of meer van de volgende extensies:
Met de extensie Azure App Service 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 extensie Azure Static Web Apps kunt u rechtstreeks vanuit VS Code Azure Static Web Apps 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:
De Docker-extensie voor het lokaal bouwen en werken met containers. U kunt bijvoorbeeld een in een container geplaatste Python-web-app uitvoeren op Azure App Service met behulp van Web Apps for Containers.
De extensie Azure Container Apps om apps in containers rechtstreeks vanuit Visual Studio Code te maken en te implementeren.
Andere extensies zijn de extensies Azure Storage, Azure Databases en Azure Resources. U kunt deze en andere extensies altijd indien nodig toevoegen.
Extensies in Visual Studio Code zijn toegankelijk zoals u verwacht in een typische IDE-interface. U kunt uitgebreide trefwoordondersteuning gebruiken 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 kunt uitvoeren op een Azure resource. In de volgende schermopname ziet u enkele acties voor App Service.
Werken met Dev Containers in Visual Studio Code
Python ontwikkelaars vaak afhankelijk zijn van virtuele omgevingen om een geïsoleerde en zelfstandige omgeving voor een specifiek project te maken. 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, met de extensie Visual Studio Code Dev Container (op basis van de specificatie van de dev-container openen) kunt u 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 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 Python toepassingsontwikkeling en veel ingebouwde hulpprogramma's en uitbreidingen voor toegang tot en implementatie naar Azure resources. Hoewel de meeste documentatie voor het bouwen van Python web-apps op Azure zich richt 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 op Visual Studio 2022.
Zie Install Python support in Visual Studio die u begeleidt bij het installeren van de Python workload in Visual Studio 2022 voor installatiestappen.
Zie Quickstart: Uw eerste Python-web-app maken met Visual Studio voor 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 voor Azure).
Zie Azure Development with Visual Studio voor het gebruik van Visual Studio 2022 voor het beheren van Azure resources en implementeren in Azure. Hoewel in veel van de documentatie hier specifiek .NET wordt vermeld, werkt de hulpprogramma's voor het beheren van Azure resources en het 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 opdrachten gebruiken.
Werken met andere IDE's
Als u in een andere IDE werkt die geen expliciete ondersteuning voor Azure heeft, gebruikt u de Azure CLI om Azure resources te beheren. In de volgende schermopname is een eenvoudige Flask-web-app geopend in de PyCharm IDE. U kunt de web-app implementeren 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.
opdrachten voor Azure CLI
Wanneer u lokaal met web-apps werkt met behulp van de opdrachten Azure CLI, gebruikt u doorgaans de volgende opdrachten:
| Bevelen | Beschrijving |
|---|---|
| az webapp | Hiermee beheert u web-apps. Bevat de subopdrachten maken en opstarten om respectievelijk een web-app te maken of 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 create om een resourcegroep te maken om uw Azure resources in te zetten. |
| az appservice | Beheert App Service-plannen. |
| az config | Beheert 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 Azure CLI opdracht voor het maken van een web-app en bijbehorende resources en deze in één opdracht implementeren in Azure met behulp van az-web-app 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 sommige van uw Azure werkstroom ook de Azure CLI van een Azure Cloud Shell kunt gebruiken. Azure Cloud Shell is een interactieve, geverifieerde, door de 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. In de sectie Gebruik de Azure-bibliotheken (SDK) voor Python wordt deze SDK uitgebreid besproken. In deze sectie leert u meer over enkele belangrijke pakketten van de SDK die u gebruikt in webontwikkeling. U ziet ook een voorbeeld met aanbevolen procedures voor het verifiëren van uw code met Azure resources.
De volgende tabel bevat enkele van de pakketten die vaak worden gebruikt bij het ontwikkelen van web-apps. U kunt pakketten rechtstreeks in uw virtuele omgeving installeren met behulp van pip. Of plaats de naam van de Python pakketindex (PyPI) in het bestand requirements.txt.
| SDK-documenten | Installeren | Python pakketindex |
|---|---|---|
| Azure Identiteit | 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 Secrets | pip install azure-keyvault-secrets |
azure-keyvault-secrets |
Met het pakket azure-identity kan uw web-app worden geverifieerd met Microsoft Entra ID. Gebruik de DefaultAzureCredential in het azure-identity pakket voor verificatie in uw web-app-code. In het volgende voorbeeld ziet u hoe u toegang hebt 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 voor accountgegevens, zoals omgevingsvariabelen of de Azure CLI aanmelding. Zie voor uitgebreide informatie over de DefaultAzureCredential-logica Authenticate Python apps to Azure services met behulp van de Azure SDK voor Python.
webframeworks op basis van Python
In Python web-app-ontwikkeling werkt u vaak met Python webframeworks. Deze frameworks bieden functionaliteit, zoals paginasjablonen, sessiebeheer, databasetoegang en eenvoudige toegang tot HTTP-aanvraag- en antwoordobjecten. Met frameworks kunt u voorkomen dat het wiel opnieuw wordt uitgevonden voor algemene functionaliteit.
Drie algemene Python webframeworks zijn Django, Flask en FastAPI. U kunt deze en andere webframeworks gebruiken met Azure.
In het volgende voorbeeld ziet u hoe u snel lokaal aan de slag kunt met deze frameworks. Wanneer u deze opdrachten uitvoert, eindigt u met een toepassing, hoewel dit een eenvoudige toepassing is die u kunt implementeren in Azure. Voer deze opdrachten uit in een virtuele omgeving.
Stap 1: Download de frameworks met behulp van pip.
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 fungeert als het toegangspunt 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.
Voeg op dit moment een requirements.txt-bestand toe. Implementeer vervolgens de web-app om deze naar Azure te implementeren of containeriseer hem met behulp van Docker en rol hem daarna uit.