具有 Python Tools 2.2 for Visual Studio 的 Azure 上的 Flask 和 Azure 表存储

在本教程中,我们将使用 Python Tools for Visual Studio 通过一个 PTVS 样本模板创建简单的轮询 Web 应用。

轮询 Web 应用是对存储库的抽象界定,因此可以轻松地在不同类型的存储库(内存、Azure 表存储、MongoDB)之间进行切换。

我们将了解如何创建 Azure 存储帐户、如何将 Web 应用配置为使用 Azure 表存储,以及如何将 Web 应用发布到 Azure 应用服务Web 应用中。

请访问 Python 开发人员中心 ,查看更多有关使用 PTVS 以及 Bottle、Flask 和 Django Web 框架、MongoDB、Azure 表存储、MySQL、SQL 数据库服务开发 Azure 应用服务 Web 应用的文章。 虽然本文将着重介绍应用服务,但步骤与 Azure 云服务的开发步骤类似。

先决条件

Note

若要完成本教程,你需要一个 Azure 帐户。 可以注册试用版

Note

若要将 Visual Studio 连接到 Azure 中国区,可按使用 Visual Studio 2015 连接中国区 Azure中的说明操作。

如果使用的是 Visual Studio 2015 Update 2 或更高版本,可以按照以下图片中的说明,选中“启用隔离的 Azure Active Directory 配置”选项。

enable-isolated-azure-active-directory-configuration

如果使用的是 Visual Studio 2017,可按 使用 Visual Studio 2017 连接中国区 Azure中的说明操作。

创建项目

在此部分中,我们将使用样本模板创建 Visual Studio 项目。 我们将创建虚拟环境并安装所需软件包。 然后,我们将使用默认内存中存储库在本地运行应用程序。

  1. 在 Visual Studio 中,选择“文件”“新建项目”。
  2. 可以从“Python”“示例”下面获取Python Tools 2.2 for Visual Studio 示例 VSIX中的项目模板。 选择“轮询 Flask Web 项目”,然后单击“确定”创建项目。

    新建项目对话框

  3. 系统将提示你安装外部软件包。 选择 安装到虚拟环境

    外部包对话框

  4. 选择“Python 2.7”或“Python 3.4”作为基础解释器。

    添加虚拟环境对话框

  5. F5确认应用程序能否正常运行。 默认情况下,该应用程序使用内存中存储库,这并不需要任何配置。 停止 web 服务器时,所有数据都会丢失。
  6. 单击“创建样本轮询” ,然后单击一个轮询进行投票。

    Web 浏览器

创建 Azure 存储帐户

要使用存储操作,你需要一个 Azure 存储帐户。 可通过以下步骤创建存储帐户。

  1. 登录到 Azure 门户
  2. 单击门户左上角的“新建”图标,然后依次单击“数据 + 存储” > “存储帐户”。 单击“创建”,然后为存储帐户指定一个唯一名称,并为它创建新的资源组

    快速创建

    创建存储帐户后,“通知”按钮将呈绿色闪烁表示成功,并且存储帐户的边栏选项卡处于打开状态,以显示它属于所创建的新资源组。

  3. 在存储帐户的边栏选项卡中单击“访问密钥”部分。 记下帐户名和 key1。

    密钥

    我们将需要使用此信息在下一部分中配置您的项目。

配置项目

在此部分中,我们将配置应用程序以使用刚才创建的存储帐户。 我们将了解如何从 Azure 门户中获取连接设置。 然后我们将在本地运行应用程序。

  1. 在 Visual Studio 中,右键单击 Solution Explorer 中的项目节点,然后选择 属性。 单击“调试” 选项卡。

    项目调试设置

  2. 在“调试服务器命令”、“环境”中设置应用程序所需的环境变量的值。

     REPOSITORY_NAME=azuretablestorage
     STORAGE_NAME=<storage account name>
     STORAGE_KEY=<primary access key>
    

    这将开始调试时设置环境变量。 如果希望在启动但不调试时设置变量,还需要在“运行服务器命令”下设置相同值。

    或者,可以使用 Windows 控制面板来定义环境变量。 如果您想要避免将凭证存储在源代码中/项目文件中,这是更好的选择。 请注意,您将需要重新启动 Visual Studio 以使新环境值可用于应用程序。

  3. 实施 Azure 表存储库的代码位于 models/azuretablestorage.py中。 请参阅 文档 以了解如何从 Python 使用表服务的更多信息。
  4. 使用 F5运行应用程序。 使用“创建样本轮询” 创建的轮询以及通过投票提交的数据会在 Azure 表存储中进行序列化。

    Note

    在 Visual Studio 中,Python 2.7 虚拟环境可能会导致异常中断。 按 F5 继续加载该 Web 项目。

  5. 浏览到“关于”页面,验证应用程序是否在使用 Azure 表存储存储库。

    Web 浏览器

了解 Azure 表存储

使用 Visual Studio 中的云资源管理器可以轻松查看和编辑存储表。 本部分中,我们将使用 Server Explorer 查看轮询应用程序表的内容。

Note

这要求安装 Azure 工具,这些工具作为 用于 .NET 的 Azure SDK的一部分提供。

  1. 打开“云资源管理器”。 展开“存储帐户”、你的存储帐户、“表”。

    云资源管理器

  2. 双击“轮询”或“选择”表,在文档窗口中查看表的内容,以及添加/删除/编辑实体。

    表查询结果

将 Web 应用发布到 Azure 应用服务

借助 Azure.NET SDK,您可以轻松地将 Web 应用部署到 Azure 应用服务中。

  1. 在“解决方案资源管理器”中,右键单击项目节点,然后选择“发布”。

    发布 Web 对话框

  2. 单击“Azure Web 应用”。
  3. 单击“新建” ,新建一个 Web 应用。
  4. 填写以下字段,然后单击“创建” 。

    • Web 应用名称
    • 应用服务计划
    • 资源组
    • 区域
    • 保持“数据库服务器”的“无数据库”设置不变
  5. 接受其他所有默认值,然后单击 发布
  6. 此时,您的 Web 浏览器会自动打开已发布的 Web 应用。 如果浏览到“关于”页面,将看到它使用的是内存中存储库,而不是 Azure 表存储存储库。

    这是因为未在 Azure 应用服务的 Web 应用实例上设置环境变量,因此它使用的是 settings.py 中指定的默认值。

配置 Web 应用实例

在此部分中,我们将配置 Web 应用实例的环境变量。

  1. Azure 门户中,单击“浏览” > “应用服务”和 Web 应用名称,打开 Web 应用的边栏选项卡。
  2. 在 Web 应用的边栏选项卡中,依次单击“所有设置”和“应用程序设置”。
  3. 向下滚动到“应用设置”部分并设置 REPOSITORY_NAMESTORAGE_NAMESTORAGE_KEY 的值(如上面的配置项目部分中所述)。

    应用设置

  4. 单击“保存” 。 收到更改已应用的通知后,单击 Web 应用主边栏选项卡中的“浏览” 。
  5. 您应该会看到 Web 应用使用 Azure 表存储库 按预期方式运行。

    祝贺你!

    Web 浏览器

后续步骤

请按照下面的链接以了解有关 Python Tools for Visual Studio、 Flask 和 Azure 表存储的更多信息。

发生的更改