教程:Visual Studio 中的 Django Web 框架入门 教程:Visual Studio 中的 Django Web 框架入门

本教程将在 Visual Studio 提供的项目模板上下文中探讨 Django 框架,以简化基于 Django 的 Web 应用的创建过程。

在本教程中,你将了解:

  • 使用“空白 Django Web 项目”模板在 Git 存储库中创建一个基本 Django 项目(步骤 1)
  • 使用模板创建一个单页 Django 应用,并呈现该页面(步骤 2)
  • 为静态文件提供服务、添加页面和使用模板继承(步骤 3)
  • 使用 Django Web 项目模板创建包含多个页面和响应式设计的应用(步骤 4)
  • 对用户进行身份验证(步骤 5)
  • 使用投票 Django Web 项目模板创建使用模型、数据库迁移和管理界面自定义项的应用(步骤 6)

系统必备

  • Windows 上的 Visual Studio 2017 有以下选项:
    • 在 Visual Studio 中安装 Python 支持。
    • “代码工具”下“单个组件”选项卡上的“适用于 Windows 的 Git”和“适用于 Visual Studio 的 GitHub 扩展”。

Django 项目模板也包含在针对 Visual Studio 的 Python 工具的所有早期版本中,尽管细节可能不同于本教程中讨论的内容(特别是不同于早期版本的 Django框架)。

Visual Studio Code 中的 Python 扩展。

“Visual Studio 项目”和“Django 项目”

一个 Django 项目可以包含多个应用,而同一个应用可以存在于多个 Django 项目中。

如果要表示 Web 应用程序的“Django 项目”部分,则会专门使用“Django 项目”。

通过将项目保留在同一解决方案中,可以轻松地在不同文件之间来回切换以进行比较。

步骤 1-1:创建 Visual Studio 项目和解决方案

在 Visual Studio 中,使用“空白 Django Web 项目”模板在 Visual Studio 项目和解决方案中提供相同结构。

  1. (还可以在左侧列表的“Python” > “Web”中找到模板。)

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  2. 在对话框底部的字段中,输入以下信息(如上图所示),然后选择“确定”:

    • 此名称还用于 Django 项目。
    • 位置:指定要在其中创建 Visual Studio 解决方案和项目的位置。
    • 解决方案:将此控件设置保留为默认“创建新解决方案”选项。
    • 解决方案名称:设置为“LearningDjango”,适用于本教程中作为多个项目的容器的解决方案。
    • 创建解决方案的目录:保留设置(默认值)。
    • 如果未看到此选项,请运行 Visual Studio 2017 安装程序并在“代码工具”下的“单个组件”选项卡上添加“适用于 Windows 的 Git”和“适用于 Visual Studio 的 GitHub 扩展”。
  3. (选择“显示所需包”查看确切的依赖项。)

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  4. (始终可从 requirements.txt 创建该环境。)

步骤 1-2:检查 Git 控件并发布到远程存储库

在此步骤中,你将熟悉 Visual Studio 的 Git 控件和在其中使用源代码管理的“团队资源管理器”窗口。

  1. 这些控件从左到右依次显示未推送的提交、未提交的更改、存储库的名称以及当前分支:

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

     备注

    如果未选择“新建项目”对话框中的”创建新 Git 存储库“,Git 控件将仅显示用于创建本地存储库的”添加到源代码管理“命令。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  2. 由于新创建的项目已经自动提交给源代码管理,因此,看不到任何挂起的更改。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  3. 由于你只有一个本地存储库,页面将提供简单的选项将存储库发布到不同的远程存储库。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

    Microsoft/python-sample-vs-learning-django 存储库中。

  4. 例如,在发布本教程的示例时,必须首先创建存储库本身,在这种情况下,“推送到远程存储库”选项将与存储库的 URL 结合使用。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

    如果没有现有存储库,可通过“发布到 GitHub”和“推送到 Azure DevOps”选项直接从 Visual Studio 创建一个存储库。

  5. 本教程会在适当时机提醒你。

 提示

要在团队资源管理器中快速导航,请选择标头(上图中显示为“更改”或“推送”)来查看可用页面的弹出菜单。

问:从项目一开始就使用源代码管理有什么好处?

这实际上是将 DevOps 用于项目的第一步,而且由于入门门槛非常低,因此没有理由不从一开始就使用源代码管理。

真相的来源:DevOps 中存储库的作用,这是 MSDN 杂志中为移动应用编写的一篇文章,也适用于 Web 应用。

问:我能否阻止 Visual Studio 自动提交新项目?

若要禁用自动提交,请转到“团队资源管理器”中的“设置”页,选择“Git” > “全局设置”,清除标记为“合并后默认提交更改”的选项,然后选择“更新”。

步骤 1-3:创建虚拟环境并从源代码管理中将其排除

然后,可以使用“团队资源管理器”从源代码管理中排除环境文件夹。

  1. 在“解决方案资源管理器”中,右键单击“Python 环境”节点并选择“添加虚拟环境”。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  2. 此消息表示 Visual Studio 使用该文件来配置虚拟环境。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  3. (如果你愿意,可以更改虚拟环境名称,这只会更改其子文件夹的名称,但 env 是标准约定。)

  4. 在等待时,仔细考虑下面的“问题”部分。

  5. 在 Visual Studio Git 控件(位于状态栏上)上,选择更改指示器(显示“99*”),这将打开团队资源管理器中的“更改”页。

    创建虚拟环境带来了数千项更改,但不需要在源代码管理中包含其中任何一项,因为你(或克隆项目的任何人员)始终可从 requirements.txt 重新创建环境。

    要排除虚拟环境,请右键单击 env 文件夹,然后选择“忽略这些本地项”。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  6. 可以双击文件查看差异。

  7. 输入提交消息,然后选择“全部提交”按钮,根据需要将提交推送到远程存储库。

问:为什么需要创建虚拟环境?

使用虚拟环境。

问:如何删除已经提交给源代码管理的虚拟环境?

也可以从团队资源管理器打开文件:在“设置”页上,选择“存储库设置”,转到“忽略和属性文件”部分,然后选择 .gitignore 旁的“编辑”链接。)

然后从命令行 (git commit -m 'Remove venv') 提交这些更改,或从“团队资源管理器”的“更改”页进行提交。

步骤 1-4:检查样本代码

项目创建完成后,检查样本 Django 项目代码(仍与 CLI 命令 django-admin startproject <project_name> 生成的代码相同)。

  1. 在本教程中,你将遇到其中的部分命令。

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  2. 它包含基本 Django 项目文件:

    • __init.py:告知 Python 此文件夹是 Python 包的空文件。

    • 通常会按原样保留该文件,因为它为生产 Web 服务器提供挂钩。

    • settings.py:包含在开发 Web 应用的过程中修改的 Django 项目的设置。

    • urls.py:包含同样在开发过程中修改的 Django 项目的内容目录。

      教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  3. 该文件旨在邀请你在第一次创建项目时创建虚拟环境。

问:在我安装其他包后,Visual Studio 能否从虚拟环境生成 requirements.txt 文件?

如果在生成服务器上设置持续集成,应该在修改环境时生成文件并提交更改。

步骤 1-5:运行空 Django 项目

  1. 在 Visual Studio 中,选择“调试” > “启动调试”(F5) 或使用工具栏上的“Web 服务器”按钮(所看到的浏览器可能会有所不同):

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  2. 如果 Visual Studio 显示“启动调试器失败”并显示无启动文件的相关消息,右键单击解决方案资源管理器中的 manage.py 并选择“设为启动文件”。

  3. Django 项目没有任何应用,但是,Django 只显示了一个默认页面,确认目前正常工作:

    教程:Visual Studio 中的 Django Web 框架入门
教程:Visual Studio 中的 Django Web 框架入门

  4. 完成后,通过关闭控制台窗口,或使用 Visual Studio 中的“调试” > “停止调试”命令来停止服务器。

问:Django 既是 Web 服务器也是框架吗?

Django 项目中的 wsgi.py 模块负责挂接到生产服务器。

问:在项目 Python 子菜单中使用“调试”菜单命令和服务器命令有何区别?

如果需要,稍后可以使用“调试” > “附加到进程”命令,将调试器附加到正在运行的进程。

后续步骤

因为通常使用的是 Django 应用而不是 Django 项目,因此,暂不需要了解关于样本文件的更多信息。

深入了解

  • 编写第一个 Django 应用,第 1 部分 (docs.djangoproject.com)
  • django-admin 和 manage.py (docs.djangoproject.com)
  • Microsoft/python-sample-vs-learning-django