调试 Django 模板
启用 Django 插件
此功能依赖于 Django 插件,该插件在 PyCharm 中默认随附并启用。 如果相关功能不可用,请确认您未禁用该插件。
按 Ctrl+Alt+S 打开设置,然后选择 。
打开 已安装 选项卡,找到 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) 命令来编辑它:

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

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

点击 调试 工具窗口中的链接。 将打开一个浏览器窗口,并显示 Page not found 消息:

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

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

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

在调试过程的其余时间里,该变量的值将显示在变量列表的顶部。 有关详细信息,请参阅 监视。
就是这样……这里完成了哪些工作? 让我们回顾一下:
您创建了一个包含模板的 Django 项目。
您向该模板添加了一个断点。
您在调试模式下启动了 Django 服务器运行/调试配置。
在命中断点后,您学习了如何在模板中单步执行、计算表达式以及添加监视。