Python Web 应用程序项目模板
Visual Studio 中的 Python 支持在 Bottle、Flask 和 Django 框架中通过项目模板和可配置为处理不同框架的调试启动程序开发 Web 项目。 这些模板包括 requirements.txt 文件来声明必需的依赖项 。 基于其中一个模板创建项目时,Visual Studio 会提示你安装依赖包,如本文后面的安装要求中所述。
也可以使用其他框架(如 Pyramid)的通用“Web 项目” 模板。 在这种情况下,不会随模板一起安装框架。 而是将必要的包安装到用于项目的环境中。 有关详细信息,请参阅 Python 环境窗口 - 包选项卡。
项目模板选项
>>通过从工具栏菜单中选择“文件”“新建”“项目”,可以从模板创建项目。 在“创建新项目”对话框中,可以筛选模板列表,以查看可用于 Python Web 项目的选项。 在“搜索”框中输入关键词,或使用筛选器下拉菜单选择 Python 作为语言和 Web 作为项目类型。
选择模板后,提供项目和解决方案名称,并设置解决方案目录和 Git 存储库选项。
通用“Web 项目”模板只提供了一个空的 Visual Studio 项目,只有一个 Python 项目,没有代码,也未做出任何假设。 其他模板都基于 Bottle、Flask 或 Django Web 框架,可以分为如以下各节所述的三个类别。 由其中任一模板创建的应用中的代码都足以在本地运行和调试应用。 每个模板还提供必要的 WSGI 应用对象 (python.org),以用于生产 Web 服务器。
空白组
所有“空白 <框架> Web 项目”模板都会创建一个项目,其中包含或多或少的样本代码以及 requirements.txt 文件中声明的必要依赖项。
模板 | 描述 |
---|---|
空白 Bottle Web 项目 | 在 app.py 文件中生成最小的应用,其中包括 / 位置的主页和 /hello/<name> 页,它使用非常短的内嵌页模板回显 <name> 值。 |
空白 Django Web 项目 | 使用核心 Django 网站结构生成 Django 项目,但没有 Django 应用。 有关详细信息,请参阅 Django 模板和学习 Django 步骤 1。 |
空白 Flask Web 项目 | 为 / 位置生成具有单个“Hello World!”页面的最小应用。 本应用类似于快速入门中的以下详细步骤的结果:使用 Visual Studio 创建第一个 Python Web 应用。 有关详细信息,请参阅学习 Flask 步骤 1。 |
Web 组
所有“<框架> Web 项目”模板都会创建一个具有相同设计的初学者 Web 应用,而与所选的框架无关。 该应用包含“主页”、“关于”和“联系人”页面,以及使用 Bootstrap 的导航菜单栏和响应式设计。 每个应用都被适当地配置为提供静态文件(CSS、JavaScript 和字体),并使用适合框架的页面模板机制。
模板 | 描述 |
---|---|
Bottle Web 项目 | 生成一个应用,其静态文件包含在 static 文件夹中,并通过 app.py 文件中的代码进行处理。 各个页面的路由包含在 routes.py 文件中。 “视图”文件夹包含页面模板。 |
Django Web 项目 | 生成一个 Django 项目和一个 Django 应用,其中包含三个页面、身份验证支持和一个 SQLite 数据库(但没有数据模型)。 有关详细信息,请参阅 Django 模板和学习 Django 步骤 4。 |
Flask Web 项目 | 生成一个应用,其静态文件包含在 static 文件夹中 。 views.py 文件中的代码处理路由,页面模板使用 templates 文件夹中包含的 Jinja 引擎。 runserver.py 文件提供启动代码 。 |
安装要求
从特定于框架的模板创建项目时,Visual Studio 会提供一个对话框,有助于使用 pip 安装所需的包。 我们还建议对 Web 项目使用虚拟环境,以确保发布网站时包含正确的依赖关项:
如果使用的是源代码管理,通常会忽略虚拟环境文件夹,因为该环境只能使用 requirements.txt 文件重新创建。 排除文件夹的最佳方法是先选择“我将自行安装”选项,然后在创建虚拟环境之前禁用自动提交。 有关详细信息,请参阅 Learn Django 教程和 Learn Flask 教程中的检查 Git 控件。
部署到 Microsoft Azure App Service 时,选择一个 Python 版本作为站点扩展并手动安装包。 此外,因为 Azure 应用服务从 Visual Studio 部署时不会自动安装 requirements.txt 文件中的包,请遵照 aka.ms/PythonOnAppService 上的配置详细信息操作。
调试选项
打开 Web 项目进行调试时,Visual Studio 会在随机端口上启动一个本地 Web 服务器,并打开默认浏览器浏览至该地址和端口。 若要指定更多选项,请在“解决方案资源管理器”中右击项目,选择“属性”。 在“属性”页面中,选择“调试”选项卡。
有三组用于调试项目的常见配置选项。 “运行”组包括以下属性:
- “搜索路径”、“脚本参数”、“解释器路径”和“解释器参数”选项与用于普通调试的相同。
- “启动 URL”指定在浏览器中打开的 URL。 默认位置为
localhost
。 - 端口号指定 URL 中未指定端口时使用的端口(默认情况下,Visual Studio 会自动选择一个)。 此设置下,能够替代
SERVER_PORT
环境变量的默认值,该变量由模板用来配置本地调试服务器侦听的端口。 - “环境”列表定义要在生成过程中设置的变量。 格式是换行分隔的
<NAME>=<VALUE>
对列表。
“运行服务器命令”和“调试服务器命令”组中的属性决定了 Web 服务器的启动方式。 由于许多框架需要使用当前项目外的脚本,因此可在此处配置该脚本并将启动模块的名称作为参数进行传递。
- 命令可以是 Python 脚本(*.py 文件)、模块名称(例如
python.exe -m module_name
)或一行代码(例如python.exe -c "code"
)。 下拉框中的值表明哪个类型适用。 - “参数”列表会在命令后的命令行上传递。
- 同样,“环境”列表定义要在可能修改环境的所有属性(例如端口号和搜索路径)之后设置的变量。 这些变量值可以覆盖其他属性值。
任何项目属性或环境变量都可以使用 MSBuild 语法进行指定,例如 $(StartupFile) --port $(SERVER_PORT)
。 $(StartupFile)
是启动文件的相对路径,{StartupModule}
是启动文件的可导入名称。 $(SERVER_HOST)
和 $(SERVER_PORT)
是普通的环境变量,由 “启动 URL”和 “端口号”属性自动设定或由 “环境”属性设定。
注意
>“运行服务器命令”中的值与“调试”“启动服务器”命令或键盘快捷键 Ctrl+F5 一起使用。 >“调试服务器命令”组中的值与“调试”“启动调试服务器”命令或 F5 一起使用。
Bottle 示例配置
“Bottle Web 项目” 模板包括执行必要配置的 Boilerplate 代码。 导入的 Bottle 应用可能不包含此代码,但在这种情况下,以下设置将使用已安装的 bottle
模块启动应用:
运行服务器命令组:
- 命令:
bottle
(模块) - 参数:
--bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
- 命令:
调试服务器命令组:
- 命令:
bottle
(模块) - 参数:
--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
- 命令:
使用 Visual Studio 进行调试时,不建议使用 --reload
选项。
Pyramid 示例配置
Pyramid 应用当前最好使用 pcreate
命令行工具进行创建。 创建应用后,可使用“基于现有 Python 代码”模板将其导入。 导入模板后,选择“通用 Web 项目”自定义来配置选项。 这些设置假设将 Pyramid 安装到 ..\env
位置的虚拟环境。
“运行”组:
- 端口号:6543(或 .ini 文件中配置的任何内容)
运行服务器命令组:
- 命令:
..\env\scripts\pserve-script.py
(脚本) - 参数:
Production.ini
- 命令:
调试服务器命令组:
- 命令:
..\env\scripts\pserve-script.py
(脚本) - 参数:
Development.ini
- 命令:
提示
你可能需要配置项目的“工作目录” 属性,因为 Pyramid 应用通常是项目根目录下的一个文件夹。
其他配置
如果有针对另一个要共享的框架的设置,或者要为另一个框架请求设置,则在 GitHub 上提出问题。