在Visual Studio代码中调试Flask(Python)Web应用程序

Mur*_*a Z 5 python visual-studio-code

如何配置visual studio代码来调试Flask(Python)Web应用程序?

例如,当我在视图函数上设置调试器时,它应该允许我在浏览器中点击该路径时单步执行该函数.

我已经在Visual Studio代码中安装了python扩展.

Vla*_*den 7

这是我对flask 0.12,Python 3.6和vs代码1.20的配置

// launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flask",
            "type": "python",
            "request": "launch",
            "stopOnEntry": false,
            "pythonPath": "${config:python.pythonPath}",
            "program": "${workspaceRoot}/app.py",
            "env": {
                "FLASK_APP": "${workspaceRoot}/app.py"
            },
            "args": [
                "run"
            ],
            "envFile": "${workspaceFolder}/.env",
            "debugOptions": [
                "RedirectOutput"
            ]
        }
    ]
}

# app.py file
app.run(port=5000)
# Don't use debug=True, because it disables VS CODE debugger
# app.run(port=5000, debug=True) - disables VS Code debugger
Run Code Online (Sandbox Code Playgroud)

  • 不要使用 *debug=True* 提示非常有价值。感谢您的回答! (4认同)

小智 7

我发现以下解决方案对我有用。我按照官方教程对生成的launch.json文件进行了一些调整。

Visual Studio Code官方flask教程调试部分

我的设置是:

  • Python 3.8.3
  • 烧瓶1.1.2
  • Visual Studio 代码 1.46.0

我当前的launch.json文件是:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "1"  // make sure it is not "0"
            },
            "args": [
                "run",
               // "--no-debugger", Comment out this line
               // "--no-reload"  Comment out this line
            ],
            "jinja": true
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

默认情况下生成的launch.json文件具有

  • “FLASK_DEBUG”:“0”
  • “--无调试器”
  • “ - 没有重装”

线,这阻止了我调试。