
![]()

Notas en el uso del framework para el desarrollo web con Python.
Índice
Introducción
Estas notas surgieron de la necesidad de aprender este framework para el desarrollo de aplicaciones web usando Python (inicialmente por un proyecto de la SEPI de la UPIICSA; posteriormente por otros de naturaleza profesional)
Elementos básicos
Herramientas
Para un proyecto de desarrollo web, muchas herramientas pueden ser usadas, no necesariamente las aquí indicadas. Esta lista enumera solamente las usadas en las descripciones o explicaciones presentadas en esta página.
- Una herramienta de edición de código (puede ser un editor de textos ASCII como son el Block de Notas de Windows o el Text Edit de macOS, pero preferiblemente uno específico para escritura de código como Vim, VSCode o PyCharm).
- Una versión reciente del intérprete de Python.
- Flask, que en realidad es un paquete de Python.
- Idealmente, mas no necesario, un administrador de ambientes de desarrollo para Python como Conda.
- Postman.
Instalación
La instalación de Flask es relativamente sencilla. Justo como cualquier otro paquete de Python. Antes de proceder con ésta, lo más recomendable es crear un entorno virtual de desarrollo y dentro de éste proceder con la instalación de Flask.
$ pip install flask
Validación
Conviene comprobar si la aplicación ha sido correctamente instalada, pese a que el proceso del instalación indique que así ha ocurrido. Esto puede hacerse invocando a la aplicación principal:
$ flask
que deberá regresar lo que se despliega cuando se invoca con la opción --help, o mediante un pequeño programa como el siguiente, que sirve para ilustrar un poco la forma como se crea una aplicación con Flask.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello world</h1>'
Ejemplo
Tomando el código de la sección anterior, guardado en un archivo de nombre prog.py, se invoca desde Flask con:
$ flask --app prog.py run
que activará un servidor web local que aceptará solicitudes, por ejemplo desde un browser, con el URL http://localhost:5000 o http://127.0.0.1:5000.
El uso del parámetro --app puede evitarse declarando una variable de sesión con el nombre del programa, por ejemplo:
$ FLASK_APP=app.py
para invocarse a ésta con sólo:
$ flask run
Otra forma es llamar directamente a la aplicación es desde el intérprete de Python, pero esto requiere un par de líneas de código más para quedar:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello world</h1>'
if __name__ == '__main__':
app.run()
y así poderse invocar:
$ python app.py
Acerca de las rutas
Las rutas (routes) son aquellos elementos que componen el URL al que se accede que siguen al nombre de dominio. Las rutas se asocian con funciones definidas por el usuario (UDF, por las siglas en inglés) de Python antecediendo a éstas en un a línea previa com el decorador @app.route(). A las funciones se les puede declarar cuanta ruta sea necesaria antecediéndolas a su definición.
Métodos HTTP
Por defecto las funciones asociadas al decorador de las rutas aceptan el método GET. El resto de los métodos del protocolo HTTP (POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LINK, UNLINK, PURGE, LOCK, UNLOCK, PROPFIND y VIEW) deben ser declarados con el parámetro methods y una lista de los nombres de os métodos que se manejarán.
Variables en rutas y valores por defecto
En la declaración de la ruta es posible indicar porciones de la ruta que deben ser tomadas como variables.
Cadenas de consulta
Métodos y datos de formularios
Redireccionamiento
Configuración
Sesiones
Depuración
Lo siguiente es una síntesis (con algunos ajustes) del excelente artículo de Graham Harrison, «How to Debug Flask Applications in VS Code«2 y, por tanto, la descripción de lo necesario para poder llevar a cabo la actividad de debugging aplica para VS Code. Como ejemplo se toma la misma aplicación presentada en la referencia citada. El código también puede conseguirse en mi repositorio de GitHub en el directorio Library.
Paso 1: Selección del intérprete Python
Paso 2: Configuración
Una vez abierto el programa en VS Code, se hace clic en el ícono de «Run & Debug» (en el lado izquierdo del IDE; alternativamente, Ctrl + Shift + D para Windows, CMD + Shift + D para macOS). Clic en el enlace «create a launch.json file» y en el menú que se muestre seleccionar «Flask launch and debug a Flask web application«. La plantilla de los que es el archivo de configuración necesario se abrirá en el editor. El contenido generado automáticamente deberá ser suficiente para este ejemplo.
Paso 3: Breakpoints
Abrir el archivo de la aplicación a depurar, app.py en este caso. En el espacio a la izquierda de los números de línea hacer clic para que aparezca un «punto rojo», señalando que se trata de un punto de ruptura (breakpoint), donde la ejecución del programa se detendrá. Hacer esto en las líneas 33 y 39 del programa de ejemplo.
Paso 3: Depurando al servicio web
Acto seguido hacer click en el icono de «Run and Debug». Bajo el menú principal se mostrará un control con una flecha verde; hacer click en ésta para activar al programa. Una ventana de consola se abrirá, y será en ella donde el web server de Flask arrojará su salida. En el arranque un URL https://127.0.0.1:5000 será mostrado. CMD + click o copiar y pegar el enlace en un browser de no abrirse automáticamente ese enlace.
Una vez activo el depurador, un control flotante con varios botones aparecerá. Clic en. el botón de avance (o F5) para ver el resultado de la función home() en el navegador. Hacer algo similar al actualizar el URL en el navegador con http://127.0.0.1:5000/api/v1/resources/books/all para ver lo que la función api_all() genera.
Referencias
- «Flask Project Web Site«, Pallets Projects, web. Visited: . URL: https://flask.palletsprojects.com/.
- Graham Harrison, «How to Debug Flask Applications in VS Code«, medium.com, web. Published: 2021.11.12; retrieved: 2023.06.23. URL: https://towardsdatascience.com/how-to-debug-flask-applications-in-vs-code-c65c9bdbef21.
- «Python debugging in VS Code,» Visual Studio Code Documentation, web. Retrieved: 2023.06.23. URL: https://code.visualstudio.com/docs/python/debugging.
- Patrick Smyth, «Creating Web APIs with Python and Flask«, programminghistorian.org, web. Updated: 2020.05.12; visited: 2023.06.23. URL: https://programminghistorian.org/en/lessons/creating-apis-with-python-and-flask.
|
© Todos los derechos reservados. Dr. Eduardo René Rodríguez Avila |
Creación: 2022.05.27 Última actualización: 2023.06.24 |
|||
| El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto. | |||||




