如何使用VS Code调试Django自定义管理命令

Rik*_*eek 3 python django debugging visual-studio-code

我正在尝试使用Visual Studio Code调试自定义管理命令。

为此,我阅读了有关使用Python和Django的官方VS Code教程,并在遵循这些教程的同时设法调试了代码。

VS Code Python教程 / VS Code Django教程

问题在于,对于Python脚本(非Django),调试器有效,因为在文件选项卡打开时我运行了特定文件(通过按f5键)。Django调试之所以有效,是因为VS Code知道何时浏览器请求导致我的Django应用达到我在VS Code中输入的断点。

但是自定义管理命令的运行方式有所不同。为此,我在控制台中键入以下内容:

python manage.py name_of_management_command

如何在VS Code中调试此代码?

jri*_*ial 8

Rik 的回答有点正确,但需要更改每个管理命令的启动配置。

要创建一个可以调试所有管理命令的条目,即使是您仍然必须编写的那些,请将以下配置添加到您的 launch.json 中:

        {
            "name": "Django MGMT Command",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "${fileBasenameNoExtension}"
            ]
        }
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为管理命令的名称是定义它的文件的名称,没有 .py 扩展名。或者${fileBasenameNoExtension}简称。

有关可以在启动配置中使用的其他变量,请参阅https://code.visualstudio.com/docs/editor/variables-reference


Rik*_*eek 5

在写这个问题时,我自己想出了一个解决方案。

在VS Code launch.json文件中(包含VS Code Django调试器的设置),默认情况下包含以下条目:

"args": ["runserver", "--noreload", "--nothreading"]

我将其更改为:

"args": ["name_of_management_command"]

然后启动调试器(按f5键),然后调试我的自定义管理命令