Compartir a través de


Configuración del entorno local para implementar aplicaciones web de Python en Azure

En este artículo se muestra cómo configurar el entorno local para desarrollar Python aplicaciones web e implementarlas en Azure. La aplicación web puede ser Python pura o usar uno de los marcos web comunes basados en Python, como Django, Flask o FastAPI.

Puede implementar Python aplicaciones web desarrolladas localmente en servicios como Azure App Service, Azure Container Apps o Azure Static Web Apps. Hay muchas opciones para la implementación. Por ejemplo, para la implementación de App Service, puede optar por implementar desde código, un contenedor de Docker o una aplicación web estática. Si implementa desde código, puede realizar la implementación mediante Visual Studio Code, el CLI de Azure, un repositorio de Git local o las acciones de GitHub. Si implementa en un contenedor de Docker, puede hacerlo desde Azure Container Registry, Docker Hub o cualquier registro privado.

Antes de continuar con este artículo, revise el Set up your dev environment para obtener instrucciones sobre cómo configurar el entorno de desarrollo para Python y Azure. En las secciones siguientes se describe la configuración y el ajuste específicos para el desarrollo de aplicaciones web en Python.

Después de configurar el entorno local para Python desarrollo de aplicaciones web, está listo para abordar estos artículos:

Trabajar con Visual Studio Code

El Visual Studio Code entorno de desarrollo integrado (IDE) es una manera fácil de desarrollar Python aplicaciones web y trabajar con Azure recursos que usan las aplicaciones web.

Sugerencia

Asegúrese de instalar la extensión Python. Para obtener información general sobre cómo trabajar con Python en VS Code, consulte Introducción a Python en VS Code.

En VS Code, trabajará con recursos de Azure a través de extensiones VS Code. Puede instalar extensiones desde la vista Extensiones o mediante la combinación de teclas Ctrl+Mayús+X. Para Python aplicaciones web, es probable que trabaje con una o varias de las siguientes extensiones:

  • La extensión Azure App Service le permite interactuar con Azure App Service desde Visual Studio Code. App Service proporciona hospedaje totalmente administrado para aplicaciones web, incluidos sitios web y API web.

  • La extensión Azure Static Web Apps le permite crear Azure Static Web Apps directamente desde VS Code. Static Web Apps es sin servidor y es una buena opción para el hospedaje de contenido estático.

  • Si planea trabajar con contenedores, instale:

    • La extensión Docker para compilar y trabajar con contenedores localmente. Por ejemplo, puede ejecutar una aplicación web de Python en contenedor en Azure App Service mediante Web Apps for Containers.

    • La extensión Azure Container Apps para crear e implementar aplicaciones en contenedor directamente desde Visual Studio Code.

  • Otras extensiones incluyen las extensiones Azure Storage, Azure Databases y Azure Resources. Siempre puede agregar estas y otras extensiones según sea necesario.

Las extensiones de Visual Studio Code son accesibles como se espera en una interfaz IDE típica. Puede aprovechar la compatibilidad con palabras clave enriquecidas mediante la paleta de comandos de VS Code. Para acceder a la paleta de comandos, use la combinación de teclas Ctrl+Mayús+P. La paleta de comandos es una buena manera de ver todas las posibles acciones que puede realizar en un recurso de Azure. En la captura de pantalla siguiente se muestran algunas de las acciones de App Service.

Una captura de pantalla de la paleta de comandos de Visual Studio Code para App Service.

Trabajar con contenedores de desarrollo en Visual Studio Code

Python los desarrolladores suelen confiar en entornos virtuales para crear un entorno aislado y independiente para un proyecto específico. Los entornos virtuales permiten a los desarrolladores administrar dependencias, paquetes y versiones Python por separado para cada proyecto, evitando conflictos entre proyectos diferentes que podrían requerir versiones de paquetes diferentes.

Aunque hay opciones populares disponibles en Python para administrar entornos como virtualenv o venv, la extensión Visual Studio Code Dev Container (basada en la especificación de contenedor de desarrollo open) permite usar un contenedor Docker como entorno contenedorizado completo. Permite a los desarrolladores definir una cadena de herramientas coherente y fácilmente reproducible con todas las herramientas, dependencias y extensiones necesarias preconfiguradas. Esto significa que si tiene requisitos del sistema, configuraciones de shell o usa otros lenguajes por completo, puede usar un contenedor de desarrollo para configurar explícitamente todas las partes del proyecto que podrían residir fuera de un entorno básico de Python.

Por ejemplo, un desarrollador puede configurar un único contenedor de desarrollo para incluir todo lo necesario para trabajar en un proyecto, incluido un servidor de base de datos postgreSQL junto con la base de datos del proyecto y los datos de ejemplo, un servidor de Redis, Nginx, código de front-end, bibliotecas cliente como React, etc. Además, el contenedor contendrá el código del proyecto, el entorno de ejecución de Python y todas las dependencias del proyecto de Python con las versiones correctas. Por último, el contenedor puede especificar Visual Studio Code extensiones que se van a instalar para que todo el equipo tenga las mismas herramientas disponibles. Por lo tanto, cuando un nuevo desarrollador se une al equipo, todo el entorno, incluidas las herramientas, las dependencias y los datos, está listo para clonarse en su máquina local y puede empezar a trabajar inmediatamente.

Ver Desarrollo dentro de un contenedor.

Trabajar con Visual Studio 2022

Visual Studio 2022 es un entorno de desarrollo integrado (IDE) completo compatible con el desarrollo de aplicaciones Python y muchas herramientas y extensiones integradas para acceder e implementar en recursos de Azure. Aunque la mayoría de la documentación para compilar aplicaciones web Python en Azure se centra en el uso de Visual Studio Code, Visual Studio 2022 es una excelente opción si ya lo tiene instalado, se siente cómodo con su uso y lo usa para proyectos de .NET o C++.

  • En general, consulte Visual Studio | Python documentación para toda la documentación relacionada con el uso de Python en Visual Studio 2022.

  • Para conocer los pasos de configuración, consulte Instalar el soporte de Python en Visual Studio que le guiará a través de los pasos para instalar los componentes de Python en Visual Studio 2022.

  • Para obtener un flujo de trabajo general de uso de Python para el desarrollo web, consulte Quickstart: Creación de la primera aplicación web de Python mediante Visual Studio. Este artículo es útil para comprender cómo crear una aplicación web de Python desde cero (pero no incluye la implementación en Azure).

  • Para usar Visual Studio 2022 para administrar recursos de Azure e implementar en Azure, consulte Azure Development with Visual Studio. Aunque gran parte de la documentación aquí menciona específicamente .NET, las herramientas para administrar Azure recursos e implementar en Azure funcionan igual independientemente del lenguaje de programación.

  • Cuando no hay ninguna herramienta integrada disponible en Visual Studio 2022 para una tarea de implementación o administración de Azure determinada, siempre puede usar comandos CLI de Azure.

Trabajar con otros IDE

Si trabaja en otro IDE que no tiene compatibilidad explícita con Azure, use el CLI de Azure para administrar recursos de Azure. En la captura de pantalla siguiente, se abre una aplicación web de Flask sencilla en el IDE de PyCharm . Puede implementar la aplicación web en un Azure App Service mediante el comando az webapp up. En la captura de pantalla, el comando de la CLI se ejecuta en el emulador de terminal insertado de PyCharm. Si el IDE no tiene un emulador incrustado, puede usar cualquier terminal y el mismo comando. El CLI de Azure debe estar instalado en el equipo y ser accesible en cualquier caso.

Una captura de pantalla del IDE de PyCharm con un comando de CLI de Azure que despliega una aplicación web.

comandos de CLI de Azure

Al trabajar localmente con aplicaciones web mediante los comandos CLI de Azure, normalmente se usan los siguientes comandos:

Get-Help Descripción
az webapp Administra las aplicaciones web. Incluye los subcomandos crear y arriba para crear una aplicación web o para crear e implementar desde un área de trabajo local, respectivamente.
az container app Administra Azure Container Apps.
az staticwebapp Administra Azure Static Web Apps.
az group Administra los grupos de recursos y las implementaciones de plantillas. Use el subcomando crear para convertir un grupo de recursos en el que colocar los recursos de Azure.
az appservice Administra los planes de App Service.
az config Administra CLI de Azure configuración. Para guardar pulsaciones de tecla, puede definir una ubicación predeterminada o un grupo de recursos que otros comandos usen automáticamente.

Este es un ejemplo CLI de Azure comando para crear una aplicación web y recursos asociados e implementarla en Azure en un comando mediante az webapp up. Ejecute el comando en el directorio raíz de la aplicación web.

  • bash
  • terminal de PowerShell
az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Para obtener más información sobre este ejemplo, vea Quickstart: Implementación de una aplicación web de Python (Django o Flask) en Azure App Service.

Tenga en cuenta que para algunos de los flujos de trabajo de Azure, también puede usar el CLI de Azure desde un Azure Cloud Shell. Azure Cloud Shell es un shell interactivo, autenticado y accesible para explorador para administrar recursos de Azure.

SDK de Azure paquetes de claves

En las aplicaciones web de Python, puede hacer referencia mediante programación a los servicios de Azure mediante el SDK de Azure para Python. En la sección Use las bibliotecas de Azure (SDK) para Python describe este SDK de forma exhaustiva. En esta sección, obtendrá información sobre algunos paquetes clave del SDK que se usan en el desarrollo web. También verá un ejemplo que sigue los procedimientos recomendados para autenticar el código con Azure recursos.

En la tabla siguiente se enumeran algunos de los paquetes que se usan habitualmente en el desarrollo de aplicaciones web. Puede instalar paquetes en el entorno virtual directamente mediante . O bien, coloque el nombre del índice de paquete de Python (PyPI) en el archivo requirements.txt.

Documentación del SDK Instalar índice de paquete de Python
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 Secretos pip install azure-keyvault-secrets azure-KeyVault-secretos

El paquete azure-identity permite que la aplicación web se autentique con Microsoft Entra ID. Para la autenticación en el código de su aplicación web, use DefaultAzureCredential en el paquete. En el ejemplo siguiente se muestra cómo acceder a Azure Storage. El patrón es similar para otros recursos de 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)

El DefaultAzureCredential busca en ubicaciones predefinidas información de la cuenta, como variables de entorno o el inicio de sesión de CLI de Azure. Para obtener información detallada sobre la lógica de DefaultAzureCredential, consulte Autenticación de aplicaciones Python a servicios de Azure mediante el SDK de Azure para Python.

marcos web basados en Python

En Python desarrollo de aplicaciones web, a menudo se trabaja con marcos web basados en Python. Estos marcos proporcionan funcionalidad, como plantillas de página, administración de sesiones, acceso a bases de datos y acceso sencillo a objetos de solicitud y respuesta HTTP. Los marcos de trabajo permiten evitar reinventar la rueda para funcionalidades comunes.

Tres marcos web de Python comunes son Django, Flask y FastAPI. Puede usar estos y otros marcos web con Azure.

En el ejemplo siguiente se muestra cómo puede empezar a trabajar rápidamente con estos marcos localmente. Al ejecutar estos comandos, terminará con una aplicación, aunque una sencilla que pueda implementar en Azure. Ejecute estos comandos dentro de un entorno virtual de .

Paso 1: Descargue los marcos mediante pip.

  • Django
  • Flask (marco de trabajo web)
  • FastAPI
pip install Django

Paso 2: Crear la aplicación Hola, Mundo.

  • Django
  • Flask (marco de trabajo web)
  • FastAPI

Cree un proyecto de ejemplo mediante el comando django-admin startproject . El proyecto incluye un archivo manage.py que actúa como punto de entrada para ejecutar la aplicación.

django-admin startproject hello_world

paso 3: Ejecutar el código localmente.

  • Django
  • Flask (marco de trabajo web)
  • FastAPI

Django usa WSGI para ejecutar la aplicación.

python hello_world\manage.py runserver

Paso 4: Examinar la aplicación "Hola Mundo".

  • Django
  • Flask (marco de trabajo web)
  • FastAPI
http://127.0.0.1:8000/

En este momento, agregue un archivo requirements.txt . A continuación, implemente la aplicación web para Azure o en contenedores mediante Docker e impleméntela.

Pasos siguientes