Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come configurare l'ambiente locale per sviluppare app Python web e distribuirle in Azure. L'app Web può essere pura Python o usare uno dei framework Web comuni basati su Python come Django, Flask o FastAPI.
È possibile distribuire Python app Web sviluppate localmente in servizi quali Azure App Service, Azure Container Apps o Azure Static Web Apps. Sono disponibili molte opzioni per la distribuzione. Ad esempio, per la distribuzione del servizio app, è possibile scegliere di eseguire la distribuzione dal codice, da un contenitore Docker o da un'app Web statica. Se distribuisci dal codice, è possibile distribuire usando Visual Studio Code, Azure CLI, un repository Git locale o GitHub Actions. Se si esegue la distribuzione in un contenitore Docker, è possibile farlo da Azure Container Registry, Docker Hub o da qualsiasi registro privato.
Prima di continuare con questo articolo, vedere Configura l'ambiente di sviluppo per indicazioni sulla configurazione dell'ambiente di sviluppo per Python e Azure. Le sezioni seguenti illustrano l'installazione e la configurazione specifiche per lo sviluppo di app Web Python.
Dopo aver configurato l'ambiente locale per lo sviluppo di app Web Python, è possibile affrontare questi articoli:
- Avvio rapido: Creare un'applicazione Web Python (Django o Flask) in Azure App Service.
- Tutorial: distribuire un'app Web Python (Django o Flask) con PostgreSQL in Azure
- Creare e distribuire un'app Web Flask in Azure con un'identità gestita assegnata dal sistema
Uso di Visual Studio Code
L'IDE (Integrated Development Environment) Visual Studio Code è un modo semplice per sviluppare app Web Python e usare Azure risorse usate dalle app Web.
Suggerimento
Assicurarsi di installare l'estensione Python. Per una panoramica dell'uso di Python in VS Code, vedere Introduzione alla Python in VS Code.
In VS Code si lavora con le risorse Azure tramite le estensioni VS Code. È possibile installare le estensioni dalla visualizzazione Estensioni o usando la combinazione di tasti CTRL+MAIUSC+X. Per Python app Web, è probabile che si funzioni con una o più delle estensioni seguenti:
L'estensione Azure App Service consente di interagire con Azure App Service dall'interno di Visual Studio Code. Il servizio app offre un hosting completamente gestito per le applicazioni Web, inclusi siti Web e API Web.
L'estensione Azure Static Web Apps consente di creare Azure Static Web Apps direttamente da VS Code. Static Web Apps è serverless e una buona scelta per l'hosting di contenuti statici.
Se si prevede di usare i contenitori, installare:
Estensione Docker per compilare e usare i contenitori in locale. Ad esempio, è possibile eseguire un'app Web Python in contenitori in Azure App Service usando Web Apps per contenitori.
L'estensione Azure Container Apps per creare e distribuire app in contenitori direttamente da Visual Studio Code.
Altre estensioni includono le estensioni Azure Storage, Azure Databases e Azure Resources. È sempre possibile aggiungere queste estensioni e altre estensioni in base alle esigenze.
Le estensioni in Visual Studio Code sono accessibili come previsto in un'interfaccia IDE tipica. È possibile usare il supporto di parole chiave avanzate usando il riquadro comandi di VS Code. Per accedere al riquadro comandi, usare la combinazione di tasti CTRL+MAIUSC+P. Il riquadro comandi è un buon modo per visualizzare tutte le possibili azioni che è possibile eseguire su una risorsa Azure. Lo screenshot seguente mostra alcune delle azioni per il servizio app.
Uso di contenitori di sviluppo in Visual Studio Code
Python gli sviluppatori spesso si basano su ambienti virtuali per creare un ambiente isolato e autonomo per un progetto specifico. Gli ambienti virtuali consentono agli sviluppatori di gestire dipendenze, pacchetti e versioni Python separatamente per ogni progetto, evitando conflitti tra progetti diversi che potrebbero richiedere versioni di pacchetti diverse.
Sebbene siano disponibili opzioni comuni in Python per la gestione di ambienti come virtualenv o venv, L'estensione Visual Studio Code Dev Container (basata sulla specifica open Dev Container) consente di usare un contenitore Docker come ambiente in contenitori completo. Consente agli sviluppatori di definire una toolchain coerente e facilmente riproducibile con tutti gli strumenti, le dipendenze e le estensioni necessari preconfigurati. Ciò significa che se si dispone di requisiti di sistema, configurazioni della shell o si usano completamente altri linguaggi, è possibile usare un contenitore di sviluppo per configurare in modo esplicito tutte le parti del progetto che potrebbero risiedere all'esterno di un ambiente di base Python.
Ad esempio, uno sviluppatore può configurare un singolo contenitore di sviluppo in modo da includere tutti gli elementi necessari per lavorare in un progetto, inclusi un server di database PostgreSQL insieme al database di progetto e ai dati di esempio, un server Redis, Nginx, codice front-end, librerie client come React e così via. Inoltre, il contenitore conterrà il codice del progetto, il runtime di Python e tutte le dipendenze del progetto Python con le versioni corrette. Infine, il contenitore può specificare Visual Studio Code estensioni da installare in modo che l'intero team disponga dello stesso strumento disponibile. Quindi, quando un nuovo sviluppatore si unisce al team, l'intero ambiente, inclusi strumenti, dipendenze e dati, è pronto per essere clonato nel computer locale e può iniziare subito a lavorare.
Vedere Sviluppo all'interno di un contenitore.
Uso di Visual Studio 2022
Visual Studio 2022 è un ambiente di sviluppo integrato completo (IDE) con supporto per lo sviluppo di applicazioni Python e molte estensioni e strumenti predefiniti per accedere e distribuire alle risorse Azure. Sebbene la maggior parte della documentazione per la compilazione di app Web Python su Azure sia incentrata sull'uso di Visual Studio Code, Visual Studio 2022 è un'ottima opzione se è già installata, è possibile usarla per progetti .NET o C++.
In generale, vedere Visual Studio | documentazione di Python per tutta la documentazione relativa all'uso di Python su Visual Studio 2022.
Per i passaggi di installazione, vedere Installare Python supporto in Visual Studio che illustra i passaggi dell'installazione del carico di lavoro Python in Visual Studio 2022.
Per un flusso di lavoro generale sull'uso di Python per lo sviluppo Web, vedere Quickstart: Creare la prima app Web Python usando Visual Studio. Questo articolo è utile per comprendere come creare un'applicazione Web Python da zero (ma non include la distribuzione in Azure).
Per l'uso di Visual Studio 2022 per gestire le risorse di Azure e distribuirlo in Azure, vedere Azure Development with Visual Studio. Anche se gran parte della documentazione qui menzionata specificamente .NET, gli strumenti per la gestione delle risorse Azure e la distribuzione in Azure funzionano allo stesso modo indipendentemente dal linguaggio di programmazione.
Quando non è disponibile uno strumento predefinito in Visual Studio 2022 per una determinata attività di gestione o distribuzione Azure, è sempre possibile usare i comandi Azure CLI.
Uso di altri IDE
Se si lavora in un altro IDE che non dispone di supporto esplicito per Azure, usare il Azure CLI per gestire le risorse Azure. Nello screenshot seguente viene aperta una semplice app Web Flask nell'IDE PyCharm . È possibile distribuire l'app Web in un Azure App Service usando il comando az webapp up. Nel screenshot, il comando CLI viene eseguito nel terminale emulatore integrato di PyCharm. Se l'IDE non ha un emulatore incorporato, è possibile usare qualsiasi terminale e lo stesso comando. Il Azure CLI deve essere installato nel computer ed essere accessibile in entrambi i casi.
comandi Azure CLI
Quando si lavora in locale con le app Web usando i comandi Azure CLI, in genere si usano i comandi seguenti:
| Comando | Descrizione |
|---|---|
| az webapp | Gestisce le app Web. Includere i sottocomandi create e up per creare un'app web o per creare e distribuire rispettivamente da un'area di lavoro locale. |
| az container app | Gestisce Azure Container Apps. |
| az staticwebapp | Gestisce Azure Static Web Apps. |
| az group | Gestisce gruppi di risorse e distribuzioni di modelli. Usare il sottocomando create per creare un gruppo di risorse in cui inserire le risorse Azure. |
| az appservice | Gestisce i piani di servizio app. |
| az config | Gestisce Azure CLI configurazione. Per salvare le sequenze di tasti, è possibile definire un percorso predefinito o un gruppo di risorse usato automaticamente da altri comandi. |
Ecco un esempio Azure CLI comando per creare un'app Web e le risorse associate e distribuirlo in Azure in un comando usando az webapp up. Eseguire il comando nella directory radice della tua app web.
az webapp up \
--runtime PYTHON:3.9 \
--sku B1 \
--logs
Per altre informazioni su questo esempio, vedere Quickstart: Distribuire un'app Web Python (Django o Flask) in Azure App Service.
Tenere presente che per alcuni dei flussi di lavoro Azure è anche possibile usare il Azure CLI da un Azure Cloud Shell. Azure Cloud Shell è una shell interattiva, autenticata e accessibile dal browser per la gestione delle risorse Azure.
pacchetti chiave Azure SDK
Nelle app Web Python è possibile fare riferimento a livello di codice ai servizi di Azure usando il Azure SDK per Python. La sezione Usare le librerie di Azure (SDK) per Python illustra ampiamente questo SDK. In questa sezione vengono illustrati alcuni pacchetti chiave dell'SDK usati nello sviluppo Web. Viene anche visualizzato un esempio che segue le procedure consigliate per l'autenticazione del codice con le risorse Azure.
La tabella seguente elenca alcuni dei pacchetti comunemente usati nello sviluppo di app Web. È possibile installare i pacchetti nell'ambiente virtuale direttamente usando pip. In alternativa, inserire il nome dell'indice del pacchetto Python (PyPI) nel file requirements.txt.
| Documentazione dell'SDK | Installare | indice del pacchetto Python |
|---|---|---|
| Azure Identity | pip install azure-identity |
azure-identity |
| Blob di Azure Storage | 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 |
Il pacchetto azure-identity consente all'app Web di eseguire l'autenticazione con Microsoft Entra ID. Per l'autenticazione nel codice dell'app Web, usare DefaultAzureCredential nel azure-identity pacchetto. Nell'esempio seguente viene illustrato come accedere alle Azure Storage. Il modello è simile per altre risorse Azure.
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)
Il DefaultAzureCredential cerca nelle posizioni predefinite le informazioni sull'account, ad esempio le variabili di ambiente o l'accesso Azure CLI. Per informazioni approfondite sulla logica DefaultAzureCredential, vedere Authenticate Python apps to Azure services by using the Azure SDK for Python.
Framework web basati su Python
Nello sviluppo di app Web Python spesso si lavora con framework Web basati su Python. Questi framework forniscono funzionalità, ad esempio modelli di pagina, gestione delle sessioni, accesso al database e facile accesso agli oggetti richiesta e risposta HTTP. I framework consentono di evitare di reinventare la rotellina per le funzionalità comuni.
Tre framework Web Python comuni sono Django, Flask e FastAPI. È possibile usare questi e altri framework Web con Azure.
L'esempio seguente illustra come iniziare rapidamente a usare questi framework in locale. Quando si eseguono questi comandi, si finisce con un'applicazione, sebbene sia semplice da distribuire in Azure. Eseguire questi comandi all'interno di un ambiente virtuale.
Passaggio 1: Scaricare i framework usando pip.
Passaggio 2: Creare un'app hello world.
Creare un progetto di esempio usando il comando startproject django-admin . Il progetto include un file manage.py che funge da punto di ingresso per l'esecuzione dell'app.
django-admin startproject hello_world
Passaggio 3: Eseguire il codice in locale.
Passaggio 4: Esplorare l'app hello world.
A questo punto, aggiungere un file requirements.txt. Distribuire quindi l'app Web in Azure o in contenitori usando Docker e distribuirla.