簡體   English   中英

如何在 VS Code 中調試 Flask 應用程序

[英]How do I debug Flask App in VS Code

我一直在嘗試讓調試器在 VS Code 中工作,以便我可以調試我的 Flask 應用程序。 我在launch.json中嘗試了很多選項,我覺得沒有剩下的了。

以下示例不起作用: https : //github.com/DonJayamanne/pythonVSCode/wiki/Debugging : -Flask

在 Visual Studio 代碼中調試 Flask(Python) Web 應用程序

下面是我的launch.jsonsetting.json 我在嘗試多個變體時在啟動文件中有兩個配置。

啟動文件

"version": "0.2.0",
    "configurations": [
    {
        "name": "Flask",
        "type": "python",
        "request": "launch",
        "stopOnEntry": false,
        "pythonPath": "${config:python.pythonPath}",
        //"module": "flask.cli",
        "program": "${workspaceRoot}/startup.py",
        "cwd": "${workspaceRoot}",
        "env": {
          "FLASK_APP": "${workspaceRoot}/apt-flask.py",
        },
        "args": [
          "run",
          "--no-debugger",
          "--no-reload"
        ],
        "envFile": "${workspaceRoot}/.env",
        "debugOptions": [
          "WaitOnAbnormalExit",
          "WaitOnNormalExit",
          "RedirectOutput"
        ]
    },
    {
        "name": "Python: APT FLask",
        "type": "python",
        "request": "launch",
        "stopOnEntry": true,
        "pythonPath": "${workspaceFolder}/venv/Scripts/python.exe",
        //"program": "${workspaceFolder}/venv/Scripts/flask.exe",
        "module": "flask.cli",
        "cwd": "${workspaceFolder}",
        "env": {
            "FLASK_APP": "${workspaceFolder}/apt-flask.py",
            "DEBUG": 1,
            "LC_ALL": "en_US.utf-8",
            "LANG": "en_US.utf-8"
        },
        "args": [
            "run",
            "--no-debugger",
            "--no-reload"
        ],
        "envFile": "${workspaceFolder}/.env",
        "debugOptions": [
            "WaitOnAbnormalExit",
            "WaitOnNormalExit",
            "RedirectOutput"
        ]
    }
]

設置.json

{
    "python.pythonPath": "${workspaceRoot}/venv/Scripts/python.exe"
}

就錯誤而言,控制台中沒有錯誤,只有編輯器中的錯誤告訴我“調試適配器進程意外終止”。

我不知道還有什么可以嘗試的。 我目前使用 Pycharm,但正在尋找一個更輕量級的編輯器,因為我將 VS Code 用於其他事情,所以改變是有意義的,所以最終讓它工作會很好。

任何幫助都會很棒。

截至 2019 年 11 月,我發現以下內容很有用:

新方法(基本和 flakey)-下面的“舊方法”更好

假設一個簡單的 app.py 如:

import flask
app = flask.Flask(__name__)
@app.route('/')
def index():
    return "Hello world!"

通過從調試資源管理器下拉菜單中添加 Python Flask 調試配置,將 .vscode/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"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        }
    ]
}

Flask 應用程序有效地從 VS Code 調試器 [F5] 中以“新方式”運行。

python -m flask run

舊方式(更好)

Miguel 建議在 VS Code 調試器中以舊方式運行應用程序並帶有附加標志更好。

將以下內容添加到 app.py(從上面):

if __name__ == '__main__':
    app.run(use_debugger=False, use_reloader=False, passthrough_errors=True)

修改 .vscode/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": "app",
            "env": {
                "FLASK_APP": "app.py",
                "FLASK_ENV": "development",
                "FLASK_DEBUG": "1"
            },
            "args": [
                // "run",
                // "--no-debugger",
                // "--no-reload"
            ],
            "jinja": true
        }
    ]
}

因此 Flask 應用程序有效地從 VS Code 調試器 [F5] 運行“舊方式”。

python app.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM