Estoy tratando de aprender Flask usando VScode.

El tutorial que estoy siguiendo es: Tutorial de Python Flask: Parte 1 de la aplicación web con todas las funciones - Primeros pasos.

Hice lo siguiente:

  1. Creó un nuevo virtualenv en una carpeta usando: virtualenv venv
  2. lo activé como: venv\Scripts\activate (Estoy en Windows 10)

Después de eso, creé un nuevo directorio llamado Flask_Blog usando mkdir Flask_Blog y en él, creé un nuevo archivo flaskblog.py que contiene el siguiente código:

from flask import Flask


app = Flask(__name__)


@app.route('/')
def hello():
    return 'Hello'

Luego, en la terminal de VScode, cambié mi directorio de trabajo para estar en el directorio Flask_Blog usando cd Flask_Blog.

Ahora, cuando estoy haciendo set FLASK_APP=flaskblog.py seguido de flask run, obtengo el siguiente error:

(venv) PS C:\Users\kashy\OneDrive\Desktop\Flask\Flask_Blog> flask run
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
Usage: flask run [OPTIONS]

Error: Could not locate a Flask application. You did not provide the "FLASK_APP" environment variable, and a "wsgi.py" or "app.py" module was not found in the current directory.

Pero

Cuando hago lo mismo en el indicador cmd, el código se ejecuta y puedo ver el resultado.

Soy completamente nuevo en esto. ¿Alguien puede decirme cuál es el error que estoy cometiendo en VSCode y por qué funciona en cmd?

6
Junkrat 10 oct. 2019 a las 12:51

1 respuesta

La mejor respuesta

Problema planteado en VsCode

En Powershell, debe establecer la variable de entorno FLASK_APP de la siguiente manera:

$env:FLASK_APP = "webapp"

Entonces debería poder ejecutar "python -m flask run" dentro de la carpeta hello_app. En otras palabras, PowerShell administra las variables de entorno de manera diferente, por lo que la línea de comandos estándar "set FLASK_APP = webapp" no funcionará.

8
arunp9294 10 oct. 2019 a las 10:11