除了 PyCharm,Django 项目还可以使用 VS Code、PyDev、pdb(Python 内置调试器)、ipdb 等工具进行断点调试,它们各有优势,适配不同的开发场景(本地/远程、轻量/全功能)。以下是详细介绍和实操步骤:

一、Python 内置调试器:pdb(无需额外安装)

pdb 是 Python 自带的命令行调试工具,无需安装任何 IDE,适合无 GUI 环境(如服务器远程调试)或轻量调试场景。

核心优势

  • 零依赖,Python 自带;
  • 支持断点、单步执行、查看变量、修改变量等核心功能;
  • 适合远程服务器调试(SSH 连接即可)。

实操步骤(Django 中使用)

  1. 在需要调试的函数中插入断点
    比如在 admin.pychangeform_view 中添加:

    # product/admin.py
    import pdb  # 导入内置调试器
    
    @admin.register(Product)
    class ProductAdmin(admin.ModelAdmin):
        def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
            # 插入断点,程序执行到这里会暂停
            pdb.set_trace()  
            if request.method == "POST":
                print(request.POST.dict())
            return super().changeform_view(request, object_id, form_url, extra_context)
  2. 运行 Django 服务并触发调试

    python manage.py runserver

    当提交 Admin 表单时,程序会暂停在 pdb.set_trace() 处,终端进入调试模式。

  3. 常用 pdb 调试命令

    命令作用
    n(next)执行下一行(不进入函数内部)
    s(step)执行下一行(进入函数内部)
    c(continue)继续执行到下一个断点
    p 变量名(print)查看变量值(如 p request.POST
    l(list)查看当前代码上下文
    q(quit)退出调试模式

进阶:ipdb(增强版 pdb,更友好)

ipdbpdb 的升级版,支持语法高亮、自动补全,体验更接近 IDE。

  • 安装:pip install ipdb
  • 使用:将 pdb.set_trace() 替换为 import ipdb; ipdb.set_trace()

二、VS Code(免费、轻量、跨平台)

VS Code 是微软推出的免费代码编辑器,搭配 Python 插件 即可实现 Django 断点调试,适合轻量开发场景,对电脑配置要求低于 PyCharm。

核心优势

  • 免费开源,跨平台(Windows/macOS/Linux);
  • 调试功能完整(断点、变量监视、调用栈);
  • 支持远程调试(如 Docker 容器、服务器)。

Django 调试实操步骤

  1. 安装插件
    在 VS Code 扩展市场安装 Python(微软官方插件)和 Django 插件(可选,增强语法提示)。
  2. 配置调试环境

    • 打开项目,点击左侧「运行和调试」图标 → 「创建 launch.json 文件」;
    • 选择 Python → Django,自动生成配置文件 .vscode/launch.json

      {
          "version": "0.2.0",
          "configurations": [
              {
                  "name": "Django",
                  "type": "python",
                  "request": "launch",
                  "program": "${workspaceFolder}/manage.py",
                  "args": [
                      "runserver",
                      "--noreload"  // 禁用自动重载,否则断点可能失效
                  ],
                  "django": true,
                  "justMyCode": true
              }
          ]
      }
  3. 设置断点并调试

    • 在代码行号左侧点击,添加红色断点标记(比如 changeform_view 函数内);
    • 点击「运行和调试」→ 启动「Django」配置;
    • 提交 Admin 表单,程序会暂停在断点处,可查看 request.POSTobj 等变量。

三、PyDev(Eclipse 插件,适合 Java/ Python 混合开发)

PyDev 是 Eclipse 的 Python 开发插件,适合习惯 Eclipse 生态的开发者,支持 Django 全流程调试。

核心优势

  • 与 Eclipse 深度集成,适合多语言项目(Java + Python);
  • 支持远程调试、代码分析、自动补全;
  • 免费开源。

实操步骤

  1. 安装 Eclipse + PyDev 插件

    • 下载 Eclipse:https://www.eclipse.org/
    • 在 Eclipse 中安装 PyDev 插件:Help → Eclipse Marketplace → 搜索 PyDev → 安装
  2. 配置 Django 项目

    • File → New → PyDev Project,导入 Django 项目;
    • 配置 Python 解释器:Window → Preferences → PyDev → Interpreters → Python Interpreter
  3. 启动调试

    • 在代码中设置断点(行号左侧双击);
    • 右键项目 → Run As → PyDev: Django
    • 触发请求后,程序暂停在断点处,可通过调试面板查看变量、调用栈。

四、远程调试工具:debugpy(VS Code/PyCharm 通用)

如果 Django 项目部署在远程服务器/ Docker 容器中,无法直接本地调试,可以使用 debugpy 实现远程断点调试。

核心优势

  • 支持 VS Code/PyCharm 远程连接;
  • 轻量,不影响生产环境(需谨慎使用)。

实操步骤(VS Code 远程调试示例)

  1. 服务器端安装 debugpy

    pip install debugpy
  2. 启动 Django 并监听调试端口

    # 服务器端运行:监听 5678 端口(可自定义)
    python -m debugpy --listen 0.0.0.0:5678 --wait-for-client manage.py runserver 0.0.0.0:8000
    • --wait-for-client:等待调试客户端连接后再启动服务;
    • 0.0.0.0:5678:允许外部机器连接。
  3. 本地 VS Code 配置远程连接
    .vscode/launch.json 中添加远程配置:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Remote Django",
                "type": "python",
                "request": "attach",
                "connect": {
                    "host": "服务器IP",
                    "port": 5678
                },
                "pathMappings": [
                    {
                        "localRoot": "${workspaceFolder}",  // 本地项目路径
                        "remoteRoot": "/服务器上的项目路径"  // 远程项目路径
                    }
                ]
            }
        ]
    }
  4. 启动远程调试

    • 本地 VS Code 点击「运行和调试」→ 选择「Remote Django」;
    • 远程程序开始运行,本地设置断点即可调试。

五、工具对比与选型建议

工具类型优势适用场景
pdb/ipdb命令行零依赖、远程友好服务器调试、轻量需求
VS Code编辑器免费、跨平台、功能全本地开发、轻量项目
PyDevEclipse 插件多语言集成Java/Python 混合开发
debugpy远程调试库跨 IDE 支持服务器/容器远程调试

六、Django 调试的通用注意事项

  1. 调试时关闭 runserver 的自动重载(--noreload),否则断点可能失效;
  2. 生产环境禁止使用调试工具,避免安全风险;
  3. 多语言项目调试时,重点监视 request.POSTform.cleaned_data 等参数载体。

是否需要我为你整理一份 VS Code 调试 Django 的详细图文步骤,帮你快速上手远程调试?

标签: none