Otra opción para correr el servidor en modo debug es poner estas lineas al final del archivo main.py
:
if __name__ == '__main__':
app.run(debug=True)
y correr main.py
desde la terminal:
python main.py
Fundamentos de Flask
Qué aprenderás sobre Flask
¿Cómo funcionan las aplicaciones en internet?
¿Qué es Flask?
Instalación de Python, pip y virtualenv
Hello World Flask
Debugging en Flask
Request y Response
Ciclos de Request y Response
Uso de templates y archivos estáticos
Templates con Jinja 2
Estructuras de control
Herencia de templates
Include y links
Uso de archivos estáticos: imágenes
Configurar páginas de error
Extensiones de Flask
Flask Bootstrap
Configuración de Flask
Implementación de Flask-Bootstrap y Flask-WTF
Uso de método POST en Flask-WTF
Desplegar Flashes (mensajes emergentes)
Pruebas básicas con Flask-testing
Proyecto
Planteamiento del proyecto: To Do List
App Factory
Uso de Blueprints
Blueprints II
Base de datos y App Engine con Flask
Configuración de Google Cloud SDK
Configuración de proyecto en Google Cloud Platform
Implementación de Firestore
Autenticación de usuarios: Login
Autenticación de usuarios: Logout
Signup
Agregar tareas
Eliminar tareas
Editar tareas
Deploy a producción con App Engine
Conclusiones
Crea una cuenta o inicia sesión
¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Bernardo Cassina
Debugging: es el proceso de identificar y corregir errores de programación.
Para activar el debug mode escribir lo siguiente en la consola:
export FLASK_DEBUG=1
echo $FLASK_DEBUG
Logging: es una grabación secuencial en un archivo o en una base de datos de todos los eventos que afectan a un proceso particular.
Se utiliza en muchos casos distintos, para guardar información sobre la actividad de sistemas variados.
Tal vez su uso más inmediato a nuestras actividades como desarrolladores web sería el logging de accesos al servidor web, que analizado da información del tráfico de nuestro sitio. Cualquier servidor web dispone de logs con los accesos, pero además, suelen disponer de otros logs, por ejemplo, de errores.
Los sistemas operativos también suelen trabajar con logs, por ejemplo para guardar incidencias, errores, accesos de usuarios, etc.
A través de el logs se puede encontrar información para detectar posibles problemas en caso de que no funcione algún sistema como debiera o se haya producido una incidencia de seguridad.
Aportes 55
Preguntas 7
Otra opción para correr el servidor en modo debug es poner estas lineas al final del archivo main.py
:
if __name__ == '__main__':
app.run(debug=True)
y correr main.py
desde la terminal:
python main.py
Qué hacer si el servidor no se inicia
flaks run
o
python -m flask run
Activar Modo debug
Para activar el modo debug simplemente hay que añadir la variable de entorno FLASK_ENV y asignarle el valor development
.
En Linux/Mac:
export FLASK_ENV=“development”
En Windows:
set “FLASK_ENV=development”
También puede controlar el modo de debug por separado del entorno exportando
export FLASK_DEBUG=1
Para crear la variable FLASK_DEBUG en PowerShell
$env:FLASK_DEBUG=1
Qué manera más clara y sencilla de explicar las cosas. Me encanta.
Gracias Bernardo.
Mon
si quieres correr la aplica cion con debug sin hacer variables de ambiente, puedes dar:
flask --app main run --debug
Esto es en windows
set FLASK_APP=myapp
set FLASK_APP=rest_registro_historico.py
set FLASK_DEBUG=1
Esto es en linux o mac
export FLASK_APP=myapp
export FLASK_APP=rest_registro_historico.py
export FLASK_DEBUG=1
Para los que usan windows prueben con set. En caso que export no les funcione!
set FLASK_DEBUG=1
Tengo un problema, no puedo añadir nada de variables en windows con SET, no funciona, intenté corriendo en la terminal python main.py
con estas configuraciones en el código:
from flask import Flask
app = Flask(__name__)
if __name__ == "__main__":
app.run(debug=True)
@app.route('/')
def hello():
return "Hello world flask :) changing"
Y todo bien, corre el server, pero a la hora de entrar a la URL dice que no encontró nada, sin embargo si le doy con el comando flask run
en la terminal, sí que funciona ¿alguien sabe a qué se debe?
I had problems with the environment variables, if you are using windows instead of use export, use set:
set "FLASK_DEBUG=1"
or add:
if __name__ == "__main__":
app.run(debug=True)
Si usan pycharm pueden crear la configuración para ejecutar la aplicación y usar el modo debugging (para el paso a paso en el código)
Ejemplo configuración:
Hola les recomiendo instalar adicionalmente a flask python-dotenv
es una herramienta que nos ayuda a declarar variables de entorno .
Por que si se dieron cuenta esas variables que exportamos solo viven en esa sesión de terminal.
pip install python-dotenv
FLASK_APP=main.py
FLASK_ENV=development
//development
et voilà, nuestras variables de entorno están listas, esto también sirve para poner cosas más interesantes como nuestras bases de datos, en mi caso personal lo uso cuando pongo el token de un bot de discord jaja
Crear el Entorno Virtual en windows:
Para crear un nuevo virtualenv, necesitas abrir una terminal command prompt y ejecutar
python3 -m venv myvenv>
Inicia el entorno virtual ejecutando:
venv\Scripts\activate
Instalar flask dentro del entorno
pip3 install flask
Activar Flask
python3 -m pip install -U Flask
Visualizar las dependencias que estan instalados dentro del ambiente virtual
pip freeze
crear un archivo con requerimientos
pip freeze > requerimientos.txt
Instalar aplicaciones desde el archivo requerimientos.txt
pip install -r .\requerimientos.txt
Activar modo de depuracion
if __name__ == '__main__':
app.run(debug=True, port=5000)
esta es una opción de run
if __name__ == '__main__':
app.run(debug=True)
Cuidado con dejar esta variable de ambiente en producción. Tiene una vulnerabilidad grande.
Dejo la prueba de concepto que hizo John Hammond
https://www.youtube.com/watch?v=jwBRgaIRdgs
Todo esto me recuerda mucho a node, en especial esta clase a nodemon
Excelente me queda claro.
export FLASK_APP=main.py #app principal para ejecución
export FLASK_DEBUG=1 #active debug flask
Para MAC , asi queda listo el debug desde las lineas de codigo
if __name__ == '__main__':
app.run(debug=True)
en windows
set FLASK_DEBUG=1
En win se crea con --> set FLASK_DEBUG=1
Cuando se activa el flag Debug , se detectan los cambios, es decir no es necesario reiniciar el servidor 😄
Hola compañeros, si alguien esta usando VS Code, y no detecta cambios en modo debug, asegúrense de tener seleccionado la shell correspondiente por default se establece en powershell, a menos que seleccionen git bash u otro shell de su preferencia.
Excelente
Quien te conoce nodemon
Para activar el modo debug en windows
Set “FLASK_ENV=development”
Para Windows
Si estas usando WSL2 y vuelves a iniciar la consola las variables de entorno desaparecen por lo que hay que crear un archivo llamado server con extensión “sh” donde agregas las variables de entorno
export FLASK_APP=main.py
export FLASK_DEB=1
Y antes de ejecutar flask run escribe este comando para crear las variables desde el archivo server sh y asi no escribir de nuevo toda la variable
source server.sh
Algo que me ayuda en mis notas y poder seguir los pasos de los cursos es guardar todos los comandos que ingrese a un archivo txt
Con este comando: 35 es el numero de comandos anteriores y se guarda en el archivo “debbug_flask.txt” dentro del folder “Notes”
history 35 > Notes/debbug_flask.txt
Tengo instalado Python 3.8 y cada vez que detengo el servidor o hago cambios me sale error , Address already in use . -flask/venv/lib/python3.8/site-packages/click/core.py", line 754, in invoke
return __callback(*args, **kwargs)
File “/Users/osanchez/Documents/Cursos/platzi-flask/venv/lib/python3.8/site-packages/flask/cli.py”, line 853, in run_command
run_simple(
File “/Users/osanchez/Documents/Cursos/platzi-flask/venv/lib/python3.8/site-packages/werkzeug/serving.py”, line 984, in run_simple
Venir de fastAPI me hace ver esa clase muy fácil, espero equivocarme.
Windows 10 y PowerShell7, modo debug
$env:FLASK_DEBUG = 1
Me gusto mucho la forma de hacer debug.
Me fuera gustado que el curso llevara algun ejemplo de conexion a una DB, ya que llevo semanas tratando de realizar trabajos con bases de datos como sqlite y mysql. si alguien ya lo ha hecho le agradeceria si pudiera ayudarme.
gracias.
excelente!
Que excelente docente, muy bien explicado hasta ahora.
brutal!
Que hay con el error: No module named C:\www\env\Scripts\flask ???
activar el debugger y listo
Activado!
Listo, activado y probado.
Muy bien, probe y funciona perfecto.
Segun la documentacion oficial tambien es posible utilizar:
export FLASK_ENV=development
https://flask.palletsprojects.com/en/1.1.x/quickstart/#debug-mode
En el archivo que ejecutan para el entorno virtual al final de este pueden agregar las variables a exportar, con eso no hay necesidad de volverlas a exportar cada ves que se ejecuta el ambiente virtual.
source .venv/bin/activate
Excelente clase y excelente profesor. Muchas gracias Platzi.
Si alguno esta usando el ide **pycharm **
Al momento de crear el proyecto lo cree directamente con el ide.
sin embargo por mas que configuraba a nivel de aplicación el modo debug
if __name__ == '__main__':
app.run(debug=True)
o
set FLASK_DEBUG=1
podía cambiar el modo, la solución fue ir a run/edit configurations y activar desde ahí el modo debug
La manera más practica para mi es usar el archivo .env y allí colocamos nuestras variables de entorno. Para porderlo usar en flask debemos instalar la lib https://pypi.org/project/python-dotenv/ y ya, cuando corramos el ```
fask run
Para los que usan windows y powershell el comando es
$env:FLASK_ENV = ‘development’
SUPER
Con este codigo tambien pueden encender el servidor con el debug ON
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello world Flask!!!
if __name__ == '__main__':
app.run(debug=True)
'```
Para ver el valor de las variables FLASK_APP y FLASK_DEBUG en Windows, debes usar el siguiente comando:
En general, puedes usar el comando echo seguido del nombre de la variable entre signos de porcentajes (echo %NOMBRE DE LA VARIABLE%)
hay alguna manera de que al guardar, se refresque solo el navegador?
en pycharm pueden configurar las variable asi:
Ingresar en Run/debug Configurations y en enviromen variables separar las variables con ; (PYTHONUNBUFFERED=1;FLASK_APP=main;FLASK_DEBUG=1)
como dato extra es importante saber que el modo debug no se puede correr en un ambiente de produccion ya que permite abrir una terminal del lado del cliente y ejecutar comandos en el servidor. a modo de prueba intenten provocar un error en su codigo y desde otro equipo habran la terminal del stack trace para importar la libreria os y apagar el equipo donde corre el servidor, si se podria hacer.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?