Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как настроить локальную среду для разработки приложений Python web и их развертывания в Azure. Веб-приложение может быть чистым Python или использовать одну из распространенных веб-платформ Python, таких как Django, Flask или FastAPI.
Вы можете развертывать Python веб-приложения, разработанные локально в службах, таких как Azure App Service, Azure Container Apps или Azure Static Web Apps. Существует множество вариантов развертывания. Например, для развертывания службы приложений можно выбрать развертывание из кода, контейнера Docker или статического веб-приложения. При развертывании исходного кода можно развернуть с помощью Visual Studio Code, Azure CLI, локального репозитория Git или GitHub Actions. При развертывании в контейнере Docker это можно сделать из Azure Container Registry, Docker Hub или любого частного реестра.
Прежде чем продолжить работу с этой статьей, ознакомьтесь с Настройка среды разработки для настройки среды разработки для Python и Azure. В следующих разделах рассматриваются установка и настройка, относящиеся к разработке веб-приложений с использованием Python.
После настройки локальной среды для разработки веб-приложений на Python вы готовы изучать эти статьи:
- Quickstart: создание веб-приложения Python (Django или Flask) в Azure App Service.
- Tutorial: развертывание веб-приложения Python (Django или Flask) с помощью PostgreSQL в Azure
- Создайте и разверните веб-приложение Flask в Azure с системным назначенным управляемым удостоверением
Работа с Visual Studio Code
Интегрированная среда разработки (IDE) Visual Studio Code — это простой способ разработки веб-приложений Python и работы с Azure ресурсами, используемыми веб-приложениями.
Совет
Установите расширение Python. Общие сведения о работе с Python в VS Code см. в статье Getting Started with Python in VS Code.
В VS Code вы работаете с ресурсами Azure с помощью расширений кода VS Code. Расширения можно установить в представлении расширений или с помощью сочетания клавиш CTRL+SHIFT+X. Для Python веб-приложений вы, вероятно, будете работать с одним или несколькими из следующих расширений:
Расширение Azure App Service позволяет взаимодействовать с Azure App Service из Visual Studio Code. Служба приложений предоставляет полностью управляемое размещение для веб-приложений, включая веб-сайты и веб-API.
Расширение Azure Static Web Apps позволяет создавать Azure Static Web Apps непосредственно из VS Code. Static Web Apps является бессерверным решением и хорошим выбором для размещения статического содержимого.
Если вы планируете работать с контейнерами, установите:
Расширение Docker для создания и работы с контейнерами локально. Например, можно запустить контейнерное веб-приложение Python на Azure App Service с помощью Web Apps для контейнеров.
Расширение Azure Container Apps для создания и развертывания контейнерных приложений непосредственно из Visual Studio Code.
Другие расширения включают расширения Azure Storage, Azure Database и Azure Resources. Вы всегда можете добавить эти и другие расширения по мере необходимости.
Расширения в Visual Studio Code доступны так же, как и в типичном интерфейсе интегрированной среды разработки. Поддержку расширенных ключевых слов можно использовать с помощью палитры команд VS Code. Чтобы получить доступ к палитре команд, используйте сочетание клавиш CTRL+SHIFT+P. Палитра команд — это хороший способ просмотреть все возможные действия, которые можно выполнить на Azure ресурсе. На следующем снимку экрана показаны некоторые действия для службы приложений.
Работа с контейнерами разработки в Visual Studio Code
Python разработчики часто используют виртуальные среды для создания изолированной и автономной среды для конкретного проекта. Виртуальные среды позволяют разработчикам управлять зависимостями, пакетами и Python версиями отдельно для каждого проекта, избегая конфликтов между различными проектами, которые могут требовать разные версии пакетов.
Хотя в Python доступны популярные варианты управления средами, такими как virtualenv или venv, расширение Visual Studio Code Контейнер разработки (на основе спецификации контейнера open Dev Container) позволяет использовать контейнер Докер в качестве полнофункционализованной контейнерной среды. Это позволяет разработчикам определять согласованную и легко воспроизводимую цепочку инструментов со всеми необходимыми инструментами, зависимостями и расширениями, предварительно настроенными. Это означает, что если у вас есть системные требования, конфигурации оболочки или другие языки, можно использовать контейнер разработки для явной настройки всех этих частей проекта, которые могут жить вне базовой среды Python.
Например, разработчик может настроить один контейнер разработки, чтобы включить все необходимое для работы над проектом, включая сервер базы данных PostgreSQL вместе с базой данных проекта и примерами данных, сервер Redis, Nginx, интерфейсный код, клиентские библиотеки, такие как React, и т. д. Кроме того, контейнер будет содержать код проекта, среду выполнения Python и все зависимости проекта Python с правильными версиями. Наконец, контейнер может указать Visual Studio Code расширения, которые необходимо установить, чтобы у всей команды было одно и то же средство. Поэтому, когда новый разработчик присоединяется к команде, вся среда, включая средства, зависимости и данные, готовы клонироваться на локальный компьютер, и они могут начать работу немедленно.
См. статью "Разработка внутри контейнера".
Работа с Visual Studio 2022 г.
Visual Studio 2022 — это полнофункциональная интегрированная среда разработки (IDE) с поддержкой разработки приложений Python и многих встроенных средств и расширений для доступа к Azure ресурсам. Хотя в большинстве документаций по созданию веб-приложений Python на Azure основное внимание уделяется использованию Visual Studio Code, Visual Studio 2022 это отличный вариант, если у вас уже есть веб-приложения, вы можете использовать его для .NET или проектов C++.
Как правило, см. документация Visual Studio | Python для всей документации, связанной с использованием Python в Visual Studio 2022 года.
Для получения инструкций по настройке см. раздел Установка поддержки Python в Visual Studio, в котором изложены шаги по установке рабочей среды Python в Visual Studio 2022.
Общий рабочий процесс использования Python для веб-разработки см. в разделе Quickstart: создание первого веб-приложения Python с помощью Visual Studio. Эта статья полезна для понимания того, как создать веб-приложение Python с нуля (но не включает развертывание в Azure).
Сведения об использовании Visual Studio 2022 для управления ресурсами Azure и развертывания в Azure см. в статье Azure Development with Visual Studio. Хотя большая часть документации здесь специально упоминает .NET, средства управления ресурсами Azure и развертывания для Azure работают одинаково независимо от языка программирования.
Если встроенное средство не доступно в Visual Studio 2022 для заданной задачи управления или развертывания Azure, можно всегда использовать команды Azure CLI.
Работа с другими интегрированными средами разработки
Если вы работаете в другой интегрированной среде разработки, которая не имеет явной поддержки для Azure, используйте Azure CLI для управления ресурсами Azure. На следующем снимке экрана простое веб-приложение Flask открыто в интегрированной среде разработки PyCharm . Веб-приложение можно развернуть в Azure App Service с помощью команды az webapp up. На снимке экрана команда CLI выполняется в эмуляторе встроенного терминала PyCharm. Если в интегрированной среде разработки нет внедренного эмулятора, можно использовать любой терминал и ту же команду. Azure CLI необходимо установить на компьютере и обеспечить его доступность в обоих случаях.
Снимок экрана среды разработки PyCharm с командой Azure CLI, развертывающей веб-приложение.
команды Azure CLI
При локальной работе с веб-приложениями с помощью команд Azure CLI обычно используются следующие команды:
| Команда | Описание |
|---|---|
| az webapp | Управляет веб-приложениями. Включает подкоманды создать и поднять для создания веб-приложения или для создания и развертывания из локальной рабочей области соответственно. |
| az container app | Управляет Azure Container Apps. |
| az staticwebapp | Управляет Azure Static Web Apps. |
| az group | Управляет группами ресурсов и развертываниями шаблонов. Используйте подкоманду create, чтобы создать группу ресурсов для того, чтобы поместить в нее ресурсы Azure. |
| az appservice | Управляет планами службы приложений. |
| az config | Управляет Azure CLI конфигурацией. Чтобы сохранить нажатия клавиш, можно определить расположение по умолчанию или группу ресурсов, которые используются автоматически другими командами. |
Ниже приведен пример команды Azure CLI для создания веб-приложения и связанных ресурсов, а также развертывания его для Azure в одной команде с помощью az webapp up. Выполните команду в корневом каталоге веб-приложения.
az webapp up \
--runtime PYTHON:3.9 \
--sku B1 \
--logs
Дополнительные сведения об этом примере см. в разделе Quickstart: развертывание веб-приложения Python (Django или Flask) в Azure App Service.
Помните, что для некоторых рабочих процессов Azure можно также использовать Azure CLI из Azure Cloud Shell. Azure Cloud Shell — это интерактивная оболочка с проверкой подлинности и доступом к браузеру для управления ресурсами Azure.
пакеты ключей Azure SDK
В веб-приложениях Python можно программно ссылаться на службы Azure с помощью Azure SDK для Python. В разделе Использование библиотек Azure (SDK) для Python подробно описывает этот пакет SDK. В этом разделе вы узнаете о некоторых ключевых пакетах пакета SDK, который вы используете в веб-разработке. Вы также увидите пример, который следует рекомендациям по проверке подлинности кода с помощью Azure ресурсов.
В следующей таблице перечислены некоторые пакеты, часто используемые в разработке веб-приложений. Пакеты можно установить непосредственно в виртуальной среде с помощью pip. Или поместите имя индекса пакета Python (PyPI) в файл requirements.txt.
| Документация по пакету SDK | Установить | индекс пакета Python |
|---|---|---|
| Azure Identity | pip install azure-identity |
azure-identity |
| Azure Storage BLOB-объекты | pip install azure-storage-blob |
azure-storage-blob |
| Azure Cosmos DB | pip install azure-cosmos |
azure-cosmos |
| секреты хранилища ключей Azure | pip install azure-keyvault-secrets |
azure-keyvault-secrets |
Пакет azure-identity позволяет веб-приложению проходить проверку подлинности с помощью Microsoft Entra ID. Для проверки подлинности в коде веб-приложения используйте DefaultAzureCredential в пакете azure-identity . В следующем примере показано, как получить доступ к Azure Storage. Шаблон аналогичен другим ресурсам 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)
DefaultAzureCredential выглядит в предопределенных расположениях для сведений об учетной записи, таких как переменные среды или вход Azure CLI. Подробные сведения о логике DefaultAzureCredential см. в Аутентификация приложений Python к службам Azure с помощью Azure SDK для Python.
веб-платформы на основе Python
В разработке веб-приложений на Python часто используются веб-фреймворки на Python. Эти платформы предоставляют функциональные возможности, такие как шаблоны страниц, управление сеансами, доступ к базам данных и простой доступ к объектам HTTP-запроса и ответа. Фреймворки позволяют избежать повторного создания колеса для общих функций.
Три распространенных веб-платформы Python: Django, Flask и FastAPI. Эти и другие веб-платформы можно использовать с Azure.
В следующем примере показано, как быстро приступить к работе с этими платформами локально. При выполнении этих команд вы в конечном итоге используете приложение, хотя и простое, которое можно развернуть в Azure. Выполните эти команды в виртуальной среде.
Шаг 1. Скачайте фреймворки с помощью pip.
Шаг 2. Создайте приложение hello world.
Создайте пример проекта с помощью команды startproject django-admin . Проект содержит файл manage.py , который служит точкой входа для запуска приложения.
django-admin startproject hello_world
Шаг 3. Запустите код локально.
Django использует WSGI для запуска приложения.
python hello_world\manage.py runserver
Шаг 4. Просмотрите приложение hello world.
На этом этапе добавьте файл requirements.txt. Затем разверните веб-приложение на Azure или контейнеризируйте его с помощью Docker и затем осуществите развертывание.