Python Web 应用程序项目模板

Visual Studio 中的 Python 支持通过项目模板和调试启动器在 Bottle、Flask 和 Django 框架中开发 Web 项目,这些启动器可以配置为处理各种框架。 这些模板包括 一个requirements.txt 文件,用于声明必要的依赖项。 从其中一个模板创建项目时,Visual Studio 会提示你安装依赖包,如本文后面的 安装要求 中所述。

还可以将通用 Web 项目 模板用于其他框架,如棱锥图。 在这种情况下,不会随模板一起安装任何框架。 而是将必要的包安装到用于项目的环境中。 有关详细信息,请参阅 “Python 环境”窗口 - “包”选项卡

项目模板选项

通过从工具栏菜单中选择“文件>新建>项目”,从模板创建项目。 在“ 创建新项目 ”对话框中,可以筛选模板列表,以查看可用于 Python Web 项目的选项。 在 “搜索 ”框中输入关键词,或使用筛选器下拉菜单选择 Python 作为语言和 Web 作为项目类型。

显示“创建新项目”对话框的屏幕截图,其中筛选了模板以显示 Visual Studio 中 Python Web 应用的选项。

选择模板后,将为项目和解决方案提供名称,并为解决方案目录和 Git 存储库设置选项。

通用 Web 项目 模板提供一个没有代码的空 Visual Studio 项目,除了作为 Python 项目之外,也没有任何假设。 其他模板基于 Bottle、Flask 或 Django Web 框架,并按以下部分所述分为三个类别。 这些模板创建的应用包含足够的代码来运行和调试这些应用于本地。 每个模板还提供必要的 WSGI 应用对象 (python.org),用于生产 Web 服务器。

空白组

所有 空白 <框架> Web 项目 模板都会创建一个项目,其中包含相对最少的样板代码以及在 requirements.txt 文件中声明的必要依赖项。

Template Description
空白瓶 Web 项目 app.py 文件中生成一个最小应用,其中包含一个用于 / 位置的主页,以及一个 /hello/<name> 页面,该页面使用简短的内联页面模板来回显 <name> 的值。
空白 Django Web 项目 生成具有核心 Django 网站结构的 Django 项目,但没有 Django 应用。 有关详细信息,请参阅 Django 模板Learn Django 步骤 1
空白 Flask Web 项目 /位置生成一个包含单个“Hello World!”页面的最小应用程序。 此应用类似于遵循快速入门中详细步骤的结果 :使用 Visual Studio 创建第一个 Python Web 应用。 有关详细信息,请参阅 Learn Flask 步骤 1

Web 组

无论选择的框架如何,所有 <框架> Web 项目 模板都创建具有相同设计的初学者 Web 应用。 该应用具有“主页”、“关于”和“联系人”页面,以及使用 Bootstrap 的导航菜单栏和响应式设计。 每个应用都适当配置为提供静态文件(CSS、JavaScript 和字体),并使用适用于框架的页面模板机制。

Template Description
Bottle Web 项目 生成一个应用程序,该应用程序的静态文件包含在static文件夹中,并通过app.py文件中的代码进行处理。 各个页面的路由包含在 routes.py 文件中。 视图文件夹包含页面模板。
Django Web 项目 生成一个 Django 项目和一个 Django 应用,其中包含三个页面、身份验证支持和 SQLite 数据库(但没有数据模型)。 有关详细信息,请参阅 Django 模板Learn Django 步骤 4
Flask Web 项目 生成一个应用,其静态文件包含在 static 文件夹中。 views.py 文件中的代码使用模板文件夹中包含的 Jinja 引擎处理路由。 runserver.py 文件提供启动代码。

安装要求

从特定于框架的模板创建项目时,Visual Studio 提供了一个对话框,可帮助你使用 pip 安装必要的包。 我们还建议对 Web 项目使用 虚拟环境 ,以确保在发布网站时包含正确的依赖项:

显示用于在 Visual Studio 中安装项目模板包的对话框的屏幕截图。

如果使用源代码管理,通常省略虚拟环境文件夹,因为只能使用 requirements.txt 文件重新创建该环境。 排除文件夹的最佳方式是先选择 “我自己安装” 选项,然后在创建虚拟环境之前禁用自动提交。 有关详细信息,请参阅 Learn Django 教程Learn Flask 教程中的“检查 Git 控件”。

部署到 Microsoft Azure 应用服务时,请选择 Python 版本作为 站点扩展 并手动安装包。 此外,由于从 Visual Studio 部署时,Azure 应用服务 不会requirements.txt 文件自动安装包,因此请遵循 有关 aka.ms/PythonOnAppService 的配置详细信息。

调试选项

打开 Web 项目进行调试时,Visual Studio 会在随机端口上启动本地 Web 服务器,并将默认浏览器打开到该地址和端口。 若要指定更多选项,请在 解决方案资源管理器中右键单击项目,选择“ 属性”。 在 “属性” 页中,选择 “调试 ”选项卡。

显示 Visual Studio 中通用 Web 模板的 Web 启动器属性的屏幕截图。

有三组用于调试项目的常见配置选项。 “运行”组包含以下属性:

  • 搜索路径脚本参数解释器路径解释器参数选项与正常调试选项相同。
  • 启动 URL 指定在浏览器中打开的 URL。 默认位置为 localhost
  • 端口号标识要使用的端口(如果未在 URL 中指定任何端口(默认情况下 Visual Studio 会自动选择一个)。 此设置允许您覆盖环境变量 SERVER_PORT 的默认值,模板使用该默认值来配置本地调试服务器监听的端口。
  • 环境列表定义要在生成过程中设置的变量。 格式是换行分隔的 <NAME>=<VALUE> 对列表。

运行服务器命令调试服务器命令组中的属性确定 Web 服务器的启动方式。 由于许多框架需要使用当前项目外部的脚本,因此可以在此处配置该脚本,并且可以将启动模块的名称作为参数传递。

  • 该命令可以是 Python 脚本(*.py文件)、模块名称(如 in)python.exe -m module_name或单行代码(如 in) python.exe -c "code"。 下拉框中的值指示要指定哪种类型。
  • 参数列表在命令后的命令行上传递。
  • 同样, 环境 列表定义要在可能修改环境的所有属性(例如端口号和搜索路径)之后设置的变量。 这些变量值可以覆盖其他属性值。

可以使用 MSBuild 语法指定任何项目属性或环境变量,例如 $(StartupFile) --port $(SERVER_PORT)$(StartupFile) 是启动文件的相对路径,是 {StartupModule} 启动文件的可导入名称。 $(SERVER_HOST)$(SERVER_PORT) 是常规环境变量,由 启动 URL端口号 属性自动设置,或者由 环境 属性设置。

注释

运行服务器命令中的值与调试>启动服务器命令或键盘快捷方式 Ctrl+F5 一起使用。 调试服务器命令组中的值与调试>启动调试服务器命令或 F5 一起使用。

示例瓶配置

Bottle Web 项目模板包括执行必要配置的样本代码。 但是,导入的 bottle 应用可能不包含此代码,在这种情况下,以下设置使用已安装 bottle 的模块启动应用:

  • 运行服务器命令 组:

    • 命令bottle (模块)
    • 参数--bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • 调试服务器命令 组:

    • 命令bottle (模块)
    • 参数--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

--reload使用 Visual Studio 进行调试时,不建议使用此选项。

棱锥图配置示例

棱锥应用目前最好使用 pcreate 命令行工具创建。 创建应用后,可以使用 “从现有 Python 代码 ”模板导入该应用。 导入完成后,选择 通用 Web 项目 自定义以配置选项。 这些设置假定 Pyramid 安装在该位置的 ..\env 虚拟环境中。

  • 运行 组:

    • 端口号:6543(或 .ini 文件中配置的任何内容)
  • 运行服务器命令 组:

    • 命令: ..\env\scripts\pserve-script.py (脚本)
    • 参数: Production.ini
  • 调试服务器命令 组:

    • 命令: ..\env\scripts\pserve-script.py (脚本)
    • 参数: Development.ini

小窍门

可能需要配置项目的 Working Directory 属性,因为 Pyramid 应用通常是项目根下的一个文件夹。

其他配置

如果具有要共享的另一个框架的设置,或者想要请求另一个框架的设置, 请在 GitHub 上提出问题