Visual Studio 中的 Python 支持通过项目模板和调试启动器在 Bottle、Flask 和 Django 框架中开发 Web 项目,这些启动器可以配置为处理各种框架。 这些模板包括 一个requirements.txt 文件,用于声明必要的依赖项。 从其中一个模板创建项目时,Visual Studio 会提示你安装依赖包,如本文后面的 安装要求 中所述。
还可以将通用 Web 项目 模板用于其他框架,如棱锥图。 在这种情况下,不会随模板一起安装任何框架。 而是将必要的包安装到用于项目的环境中。 有关详细信息,请参阅 “Python 环境”窗口 - “包”选项卡。
项目模板选项
通过从工具栏菜单中选择“文件>新建>项目”,从模板创建项目。 在“ 创建新项目 ”对话框中,可以筛选模板列表,以查看可用于 Python Web 项目的选项。 在 “搜索 ”框中输入关键词,或使用筛选器下拉菜单选择 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 项目使用 虚拟环境 ,以确保在发布网站时包含正确的依赖项:
如果使用源代码管理,通常省略虚拟环境文件夹,因为只能使用 requirements.txt 文件重新创建该环境。 排除文件夹的最佳方式是先选择 “我自己安装” 选项,然后在创建虚拟环境之前禁用自动提交。 有关详细信息,请参阅 Learn Django 教程和 Learn Flask 教程中的“检查 Git 控件”。
部署到 Microsoft Azure 应用服务时,请选择 Python 版本作为 站点扩展 并手动安装包。 此外,由于从 Visual Studio 部署时,Azure 应用服务 不会 从 requirements.txt 文件自动安装包,因此请遵循 有关 aka.ms/PythonOnAppService 的配置详细信息。
调试选项
打开 Web 项目进行调试时,Visual Studio 会在随机端口上启动本地 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 上提出问题。