Empezaremos con la instalación de Flask y luego veras un pequeño ejemplo del programa para que puedas ver la características principales de cómo se puede construir aplicaciones web con Python a partir del Framework Flask.

Se utilizará un entorno virtual P ython donde se va a instalar el Framework y a partir de allí se construirá la aplicación.

Lo primero en hacer es crear un entorno virtual, en OpenWebinars tienes distintos artículos y distinta información sobre el trabajo con entornos virtuales en Python y puedes acceder a él para conocerlo en profundidad.

En principio como administrador se debe hacer:

$ sudo apt-get install python-virtualenv

Luego se crea el entorno virtual con el usuario sin privilegios con el nombre pruebaflask:

$ virtualenv -p /usr/bin/python3 pruebaflask.

imagenUno

NOTA

Un entorno virtual nos permite tener en un usuario sin privilegios un ámbito donde se puede instalar con el instalador pip distintos módulos de Python que se pueden utilizar cuando se tiene activado dicho entorno.

Se activa el entorno virtual:

$ source pruebaflask/bin/activate

imagenDos

Ahora todas las instalaciones que hagas de módulo Python van a estar referidas en este entorno virtual y van a estar disponibles mientras esté activado ese entorno. Con esto se consigue tener un entorno aislado del sistema y se puede trabajar con versiones y módulos de Python determinados para nuestra aplicación web.

En este entorno se instalará el Flask:

$ pip install flask

imagenTres

Se comprueba la instalación:

$ flask --version

Con estos pasos tendriamos instalado nuestro Framework Flask en un entorno virtual y así ya podemos empezar a trabajar.

El primer programa a trabajar es el siguiente:

NOTA:

Cuando estamos trabajando con Apps Web en Python todas las peticiones que hacen los clientes las recibe un único programa, que es lo que se llama un único punto de entrada, por lo tanto nuestra aplicación tiene que ser capaz de,según la ruta a la que se está accediendo, ejecutar un código o ejecutar otro. Ese código terminará generando una respuesta HTTP que recibe el cliente.

imagenCuatro

Lo primero que se ha hecho es importar del módulo flask la clase Flask y se ha creado una aplicación:

from flask import Flask
app= Flask(__name__)

Esta aplicación es WSGI que permite obtener la información de la petición, realizar una operación y posteriormente generar una respuesta. Y, ¿Cómo se hace esto?. Se hace mediante la función route que permite definir las distintas rutas a las que se va poder acceder a nuestra aplicación.

@app.route('/')

En este caso si accedemos a la página principal (‘/‘) se va a ejecutar la función hello_world(): que simplemente va a devolver una cadena de caracteres que es una respuesta HTTP con un código de estado 200, con una cabecera de respuesta y con un cuerpo con el que se devuelve el código HTML:

<h1>Hello, World!</h1>

OJO:

Como es el primer ejemplo y es una pequeña introducción no estamos generado páginas HTML válidas con toda la estructura, para ello en otro video se explicará el uso de plantillas con Flask.

A continuación cuando se ejecuta el programa con la función: app.run lo que se hace es ejecutar un servidor web para hacer las pruebas y se puede acceder a él desde cualquier direccion (0.0.0.0) desde el puerto 5000.

app.run('0.0.0.0', 5000, debug=True)

Además se ha activado la depuración (debug= True), aunque para este ejemplo no hara falta.

Para probar este ejemplo ejecutamos:

python3 app.py

imagenCinco

Se puede observar que se está corriendo un servidor web en el puerto 5000.

Vamos al navegador y podemos acceder y ver el ejemplo por el localhost:5000:

imagenSeis

Sigamos trabajando con las rutas:

Se puede ahora poner una ruta que me responda cuando accedo a artículos:

app.route('/articulos/')

Se ha colocado la barra de atrás,esto lo que hace es simular que se está entrando en un sistema de archivos, es decir, en un directorio pero en verdad no existe ningún directorio o artículos dentro de mi sistema de archivo, simplemente mi programa comprueba la ruta y según ella se genera una respuesta u otra.

se puede tener otra ruta (‘/acercade’):

app.route('/acercade')

En este caso que no se ha puesto una barra al final, quiere decir que se está simulando que se está accediendo a un fichero.

imagenOnce

Probamos de nuevo y sii te fijas en la terminal se ha detectado que se han hecho cambios en el código y por eso ha reiniciado el servidor web.

imagenSiete

Visualizamos en el navegador:

imagenOcho

imagenNueve

Si colocas en el navegador localhost:5000/acercade/ saldrá un Not Found porque esa ruta no la tiene definida:

imagenDiez

Rutas Dinámicas:

Las rutas dinámicas son aquellas donde uno de los elementos que se indica en la ruta se puede modificar,es decir, es una variable. Para indicar que es una ruta dinámica se debe encerrar la variable en <>:

<nombre_de_la_varibale>

Esa variable la recibe la función que se va a ejecutar, por lo tanto dicha variable estará disponible durante la ejecución de la función.

Esa variable la recibe la función que se va a ejecutar, por lo tanto dicha variable estará disponible durante la ejecución de la función.

imagenDoce

Probamos en el navegador:

imagenTrece

Las páginas que den Not Found tienen ya un estilo por defecto, estas páginas se pueden personalizar con la función errorhandler(404) y le decimos que cuando ocurra el error 404 se ejecuta esta función:

imagenCatorce

imagenQuince

Como puedes ver para tener un primer acercamiento a Flask es muy sencillo de ir seccionando las distintas rutas de acceso e ir respondiendo de una manera bastante sencilla.

Artículo desarrollado a partir del vídeo por Ana Gabriela Durán.