第 2 部分。 调试 Django 模板
启用 Django 插件
此功能依赖 Django 插件,该插件在 PyCharm 中默认捆绑并启用。 如果相关功能不可用,请确保您未禁用该插件。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 已安装 选项卡,找到 Django 插件,并选中插件名称旁的复选框。
开始之前,请确保将 Django 指定为 项目模板语言。
准备示例
创建 Django 项目
demoDjangoProject,包含应用poll。
PyCharm 会创建项目结构并填充所需文件。
打开文件 poll/views.py 。 其中已包含
import语句以及为您的应用创建视图的提示:from django.shortcuts import render # Create your views here.让我们为该应用的主页定义一个视图:
from django.shortcuts import render def index(request): return render(request, 'poll/index.html', context={'hello': 'world'})index.html 被标记为未解析的引用:

按 Alt+Enter 或点击
,选择创建缺失的模板:
将出现 创建模板 对话框,显示只读的模板名称(模板路径 字段)以及可能的模板位置列表(模板根目录 字段):

选择要在其中创建新模板的模板目录。
模板根目录 字段提供新模板可能位置的列表。 此列表包括在 IDE 设置 Ctrl+Alt+S 的 页面中 指定 的模板目录,以及应用目录内的所有 templates 文件夹(如果有)。
点击 确定。
将在指定位置创建一个空的 .html 文件。
在 templates/poll/index.html 中,输入以下代码,以逐个字符打印出
hello变量的值:{% for char in hello %} {{ char }} {% endfor %}根据 poll/views.py 中提供的上下文,
hello的值为world。 因此,我们预期渲染后的页面将包含w o r l d。打开 demoDjangoProject/urls.py 文件。
在此文件中找到
urlpatterns,并添加以下代码,以定义应使用哪个视图来渲染 index 页面:path('index/', index),别忘了 import 语句!
from poll.views import index最终应如下所示:

因此,示例代码已就绪。
设置断点
向模板文件添加一个断点。 为此,打开文件 templates/poll/index.html ,并点击标记栏:

会自动创建 Django 服务器的运行/调试配置。 如有需要,您可以在主工具栏的运行/调试配置列表中选择 编辑配置(E) 命令进行编辑:

例如,您可以选择在启动该配置时自动打开浏览器窗口:

启动运行/调试配置
点击
,在调试模式下启动所选运行/调试配置。

点击 调试 工具窗口中的链接。 将打开一个带有 页面未找到 消息的浏览器窗口:

这是因为我们未在文件 urls.py 中为
'/'指定路径。让我们在浏览器地址栏中添加
/index,然后按 Enter 。
PyCharm 窗口将出现。 您可以看到断点已命中,且 调试 工具窗口的 线程与变量 选项卡中包含变量的当前值:

适用于 Django 应用的 调试工具窗口 具有与纯 Python 脚本类似的全部功能:
逐步执行程序
单步执行工具栏处于活动状态,单步执行按钮可用。 例如,您可以点击
,会看到变量
char的值变为单词world的下一个字母。有关详细信息,请参阅 逐步执行程序。
计算表达式
按 Alt+F8 ,或在 单步执行工具栏 上点击
,然后选择
对表达式求值。 在打开的对话框中,输入您希望计算的表达式,然后点击 计算:

有关详细信息,请参阅 计算表达式。
监视变量
假设您希望始终关注模板中的某个变量,例如
char。 该如何操作?在 调试 工具窗口的 线程与变量 选项卡顶部,键入感兴趣的变量名称,然后按
:

在接下来的调试过程中,变量的值将显示在变量列表顶部。 有关详细信息,请参阅 监视。
就是这样……这里完成了什么? 让我们回顾一下:
您已创建一个 Django 项目,并在其中添加了模板。
您已向该模板添加了一个断点。
您已在调试模式下启动了 Django 服务器的运行/调试配置。
在命中断点后,您已了解如何逐步执行模板、计算表达式并添加监视。
下一步同样面向 Pro 模式用户——即 调试 JavaScript。