本文逐步讲解如何设置本地环境以开发 Python Web 应用 并将其部署到 Azure。 Web 应用可以是纯 Python,也可以使用基于 Python 的常见 Web 框架之一,如 Django 、 Flask 或 FastAPI 。
本地开发的 Python Web 应用可以部署到 Azure 应用服务 、 Azure 容器应用 或 Azure Static Web Apps 等服务。 有许多部署选项。 例如,对于App 服务部署,可以选择从代码、Docker 容器或静态 Web 应用进行部署。 如果通过代码进行部署,则可以使用 Visual Studio Code、Azure CLI、本地 Git 存储库或 GitHub 操作进行部署。 如果在 Docker 容器中部署,可以从Azure 容器注册表、Docker Hub或任何专用注册表执行此操作。
在继续阅读本文之前,建议查看 设置开发环境 ,获取有关为 Python 和 Azure 设置开发环境的指南。 下面,我们将讨论特定于 Python Web 应用开发的设置和配置。
为 Python Web 应用开发设置本地环境后,即可处理以下文章:
Visual Studio Code 集成开发环境 (IDE) 是开发 Python Web 应用和使用 Web 应用使用的 Azure 资源的一种简单方法。
确保已安装 Python 扩展。 有关在 VS Code 中使用 Python 的概述,请参阅 在 VS Code 中使用 Python 入门 。
在 VS Code 中,可以通过 VS Code 扩展 使用 Azure 资源。 可以从 扩展视图或 组合键 Ctrl+Shift+X 安装扩展。 对于 Python Web 应用,你可能需要使用以下一个或多个扩展:
Azure 应用服务 扩展使你能够从Visual Studio Code内部与Azure 应用服务进行交互。 App 服务为 Web 应用程序(包括网站和 Web API)提供完全托管的托管。
Azure Static Web Apps 扩展使你能够直接从 VS Code 创建Azure Static Web Apps。 Static Web Apps是无服务器的,是静态内容托管的不错选择。
如果计划使用容器,请安装:
用于在本地生成和使用容器的 Docker 扩展。 例如,可以使用适用于容器的 Web 应用 在 Azure 应用服务 上运行 容器 化 Python Web 应用。
Azure 容器应用 扩展,用于直接从 Visual Studio Code 创建和部署容器化应用。
还有其他扩展,例如 Azure 存储 、 Azure 数据库 和 Azure 资源 扩展。 始终可以根据需要添加这些扩展和其他扩展。
Visual Studio Code 中的扩展可按预期在典型 IDE 界面中访问,并且使用 VS Code 命令面板 提供丰富的关键字支持。 若要访问命令面板,请使用组合键 Ctrl+Shift+P。 命令面板是查看可以对 Azure 资源执行的所有可能操作的好方法。 下面的屏幕截图显示了App 服务的一些操作。
如果使用的是另一个不明确支持 Azure 的 IDE,则可以使用 Azure CLI 管理 Azure 资源。 在下面的屏幕截图中,PyCharm IDE 中打开了一个简单的 Flask Web 应用。 可以使用 命令将 Web 应用部署到Azure 应用服务 az webapp up 。 在屏幕截图中,CLI 命令在 PyCharm 嵌入式终端模拟器中运行。 如果 IDE 没有嵌入式仿真器,则可以使用任何终端和同一命令。 必须在计算机上安装 Azure CLI,并且可在任一情况下访问。
az webapp up
使用 Azure CLI 命令在本地处理 Web 应用时,通常会使用以下命令:
有关此示例的详细信息,请参阅 快速入门:将 Python (Django 或 Flask) Web 应用部署到Azure 应用服务 。
请记住,对于某些 Azure 工作流,还可以从 Azure Cloud Shell使用 Azure CLI。 Azure Cloud Shell 是一个用于管理 Azure 资源的、可通过浏览器访问的交互式经验证 shell。
在 Python Web 应用中,可以使用用于 Python 的 Azure SDK 以编程方式引用 Azure 服务。 此 SDK 在 将 Azure 库 (SDK) 用于 Python 部分中进行了广泛讨论。 在本部分中,我们将简要介绍将在 Web 开发中使用的 SDK 的一些关键包。 并且,我们将介绍有关使用 Azure 资源对代码进行身份验证的最佳做法的示例。
下面是 Web 应用开发中常用的一些包。 可以使用 直接 pip 在虚拟环境中安装包。 或者将 Python 包索引 (Pypi) 名称放在 requirements.txt 文件中。
pip
Azure-identity 包允许 Web 应用使用 Azure Active Directory (Azure AD) 进行身份验证。 对于 Web 应用代码中的身份验证,建议在包中使用 DefaultAzureCredential azure-identity 。 下面是如何访问 Azure 存储的示例。 对于其他 Azure 资源,该模式类似。
azure-identity
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 SDK 对 Azure 服务的 Python 应用进行身份验证。 基于 Python 的 Web 框架 在 Python Web 应用开发中,通常使用基于 Python 的 Web 框架。 这些框架提供页面模板、会话管理、数据库访问以及轻松访问 HTTP 请求和响应对象等功能。 框架使你无需为常见功能而重新发明轮子。 三种常见的 Python Web 框架是 Django、 Flask 或 FastAPI。 这些和其他 Web 框架可以与 Azure 一起使用。 下面是如何在本地快速开始使用这些框架的示例。 运行这些命令后,你将得到一个应用程序,尽管应用程序很简单,可以部署到 Azure。 在 虚拟环境中运行这些命令。 步骤 1: 使用 pip 下载框架。 Django Flask FastAPI 快速入门:在 Azure 应用服务 中创建 Python (Django 或 Flask) Web 应用。 教程:在 Azure 中使用 PostgreSQL 部署 Python (Django 或 Flask) Web 应用 教程:使用托管标识将 Python Web 应用部署到 Azure
DefaultAzureCredential将在预定义的位置查找帐户信息,例如,在环境变量中或从 Azure CLI 登录。 有关逻辑的详细信息 DefaultAzureCredential ,请参阅 使用适用于 Python 的 Azure SDK 对 Azure 服务的 Python 应用进行身份验证。
DefaultAzureCredential
在 Python Web 应用开发中,通常使用基于 Python 的 Web 框架。 这些框架提供页面模板、会话管理、数据库访问以及轻松访问 HTTP 请求和响应对象等功能。 框架使你无需为常见功能而重新发明轮子。
三种常见的 Python Web 框架是 Django、 Flask 或 FastAPI。 这些和其他 Web 框架可以与 Azure 一起使用。
下面是如何在本地快速开始使用这些框架的示例。 运行这些命令后,你将得到一个应用程序,尽管应用程序很简单,可以部署到 Azure。 在 虚拟环境中运行这些命令。
步骤 1: 使用 pip 下载框架。