Aplicación web Debug Flask (Python) en código de Visual studio

¿Cómo configuro el código de Visual Studio para depurar la aplicación web de Flask (Python)?

Por ejemplo, cuando configuro el depurador en la función de vista, debería permitirme pasar por esa función cuando encontramos esa ruta en el navegador.

Ya instalé la extensión de Python en el código de Visual Studio.

Aquí está mi configuración para el matraz 0.12, Python 3.6 y el código 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 

No uso VS para el desarrollo de python. Sin embargo, Flask tiene una opción de depuración realmente agradable, que te permite depurar desde el navegador. Esta no es una solución para VS sino una solución alternativa.

Cuando define su aplicación, pase el parámetro debug = true para habilitar el modo de depuración. Entonces puedes depurar tu código desde el navegador.

 app = Flask(__name__) app.config['DEBUG'] = True 

más información se puede encontrar aquí

1) Cree startup.py en el directorio raíz de su proyecto con el siguiente código

# Needed to start debugger for flask app in Visual Studio Code IDE import sys import re from flask.cli import main sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(main())

2) Actualice el archivo launch.json en Visual Studio Code navegando a la pestaña Debug (panel izquierdo) luego haga clic en el icono de configuración (icono de engranaje). Desplácese hacia abajo hasta la sección “FLASK”:

a) Cambie el valor del "program" a "${workspaceRoot}/startup.py"
b) Cambie el valor de "FLASK_APP" a "${workspaceRoot}/run.py" (o cualquiera que sea su archivo de punto de entrada principal es ”

3) Vaya a Archivo-> Preferencias-> Configuración y luego haga clic en la configuración del área de trabajo en la esquina superior derecha. Inserte el siguiente campo "python.pythonPath": "${workspaceRoot}/venv/Scripts/python.exe" (Si su entorno virtual recibe un nombre distinto de venv , reemplácelo con el valor apropiado

Podemos usar la primera respuesta a Linux ( Ubuntu ) también con las modificaciones a continuación.

En VSC agregue la configuración para la depuración del matraz. que obtendrá del botón Agregar. y se verá como a continuación.

{ "name": "Flask", "type": "python", "request": "launch", "stopOnEntry": false, "pythonPath": "${config:python.pythonPath}", "program": "${workspaceRoot}/app.py", #your start py file "env": { "FLASK_APP": "${workspaceRoot}/app.py" #your start py file }, "args": [ "run" //--no-debug and one more line removed. ], "envFile": "${workspaceFolder}/.env", "debugOptions": [ "RedirectOutput" ] }

Paso 2. Vaya a Archivo -> Preferencias -> Configuración, luego haga clic en la pestaña de configuración del área de trabajo en la esquina superior derecha. Inserte el siguiente campo "python.pythonPath": "${workspaceRoot}/venv/bin/python2.7", (Si su entorno virtual tiene un nombre diferente a venv, entonces reemplácelo con el valor apropiado

Para ampliar la respuesta del Sr. Guy, tuve que configurar el depurador para el código de estudio visual en el entorno de Windows con Anaconda 2. Lo hice utilizando lo siguiente:

 { "python.pythonPath": "C:\\ProgramData\\Anaconda2\\envs\\neuralnets\\python.exe" } 

con las redes neuronales siendo mi entorno virtual anaconda 2