Con lo anterior en mente han ido surgiendo una cantidad considerable de los llamados microframeworks, que son ecosistemas de trabajo que tienen los elementos necesarios como para no tener que partir desde cero al momento de desarrollar nuestra aplicación, pero su tamaño es mínimo, dándonos solo lo necesario para empezar sin tener que inundarnos la cabeza de mucho material.
En Python existen una gran cantidad de estos microframeworks, sin embargo hay uno que resalta gracias a su gran documentación y comunidad, este es Flask, que con unas pocas librerías y componentes nos permite iniciar un desarrollo sin perder de vista la escalabilidad y la modularidad.
Requisitos
Para instalar virtualenv simplemente debemos cumplir los siguientes requisitos:
1- Instalar Python 2.7 o superior, dependiendo de nuestro sistema operativo el proceso será diferente, pero para la mayoría de distribuciones Linux este ya viene instalado por defecto. En Windows simplemente hay que instalar utilizando el descargable correspondiente a nuestro sistema.
2- Una vez que tenemos Python, tenemos que instalar pip, esta es una herramienta que nos permite hacer la instalación de forma sencilla y a través de la consola de comandos de los diferentes paquetes para Python. En Ubuntu por ejemplo basta con colocar en la consola de comandos:
apt-get install python-setuptoolsY luego ejecutamos:
easy_install pipEn Windows simplemente hay que ubicar los descargables correspondientes de setuptools.py y luego getpip.py ambos archivos hay que ejecutarlos con Python desde la consola de comandos.
3- Finalmente podemos instalar virtualenv al colocar en la consola pip install virtualenv, lo cual nos dará la capacidad de crear nuestros entornos virtuales.
Crear un entorno virtual
Para crear un entorno virtual, simplemente debemos crear una carpeta que contendrá a nuestro proyecto y luego dentro de ella colocar el comando:
virtualenv nuestroproyectoDonde “nuestroproyecto” será el nombre del entorno virtual.
Una vez que virtualenv creó el entorno, debemos activarlo, para ello dependiendo del sistema en el que estemos debemos hacer lo siguiente, en Ubuntu por ejemplo, simplemente nos colocamos dentro de nuestro entorno y colocamos el siguiente comando:
source bin/activateSi nos encontramos en Windows, haríamos lo siguiente:
Scripts/activateAl final tendríamos un entorno activado como vemos en la siguiente imagen:
Cómo podemos visualizar en la consola sale entre paréntesis el nombre de nuestro entorno ya activado.
Instalar Flask
Ya que tenemos todos los requisitos anteriores cumplidos, ahora si podemos hacer la instalación del microframework Flask, para ello en nuestra consola del entorno virtual, simplemente escribimos lo siguiente:
pip install flaskSi todo ha ido bien obtendremos algo como lo que vemos en la siguiente imagen:
Vemos como al final nos dice que se instaló exitosamente Flask además de sus dependencias, con ello ya estamos listos para poder empezar a desarrollar nuestras aplicaciones con este microframework.
Creando nuestra primera aplicación
Vamos ahora a crear nuestra primera aplicación, en este caso haremos el clásico “Hola mundo!” con lo cual podremos entender algunas cosas interesantes de trabajar con Flask. Vamos a necesitar un editor de texto plano o tal vez algún IDE que soporte Python, recomendamos utilizar Sublime Text, o tal vez Notepad++ ambas opciones nos permiten resaltar las palabras clave del lenguaje.
Dentro de nuestro entorno vamos a crear un archivo llamado app.py y dentro de este vamos a colocar el siguiente código:
from flask import Flaskapp = Flask(__name__)@app.route('/')def hola_mundo(): return 'Hola Mundo!!!'if __name__ == '__main__': app.run()Empezamos importando el framework, para ello primero indicamos que de la librería flask vamos a importar la clase Flask. Luego definimos que nuestra app va a ser una instancia de dicha clase. Creamos un decorator @app.route(/) que nos va a indicar que la ruta que va a ser definida para utilizar la función a continuación es la raíz.
Acto siguiente creamos nuestra función hola_mundo() y esta va a retornar un mensaje en forma de string. Finalmente ejecutamos el método app.run() con lo cual se va a levantar nuestra aplicación.
Para ver esto funcionando simplemente nos vamos a la consola de nuestro entorno virtual y escribimos:
python app.pyEsto debe mostrar un mensaje como el siguiente en la consola:
Vemos que nos dice que la aplicación está corriendo en 127.0.0.1 en el puerto 5000 por lo que colocamos esa información en nuestro navegador y veremos el resultado como en la imagen siguiente:
Ya con esto tenemos nuestra primera aplicación hecha con Flask y no nos tomó ni un par de minutos.
La organización de nuestra aplicación
Debido a la naturaleza micro de Flask y además que su objetivo es dejarnos trabajar de la forma en la que más cómodos nos sintamos, inicialmente no nos genera ninguna estructura de carpetas para nuestra aplicación, por lo que nos da la libertad de crear nuestra estructura de la forma en que mejor nos parezca.
La configuración básica de carpetas recomendada consiste en una carpeta principal con el nombre del proyecto, dentro de esta tendremos el archivo principal que inicia la aplicación, así como un par de carpetas adicionales, la primera es la de los archivos estáticos como imágenes y hojas de estilo, la segunda es la carpeta de las plantillas llamada templates, donde tendremos los archivos que nos ayudarán a generar las vistas con HTML para el usuario final de la aplicación. Veamos en la siguiente imagen como luce esta estructura:
El motor de plantillas
Por defecto Flask utiliza jinja2 como su motor de plantillas, sin embargo esto puede ser cambiado por otro, pero antes de descartar hacer uso de él, podemos ver que nos ofrece.
La sintaxis es muy similar al motor de plantillas de Django, por lo que si hemos trabajado con dicho framework probablemente nos sentiremos muy a gusto.
El manejo de las Bases de Datos
Por defecto Flask no tiene ningún ORM, por lo que si vamos a trabajar con las Bases de Datos, o bien construimos nuestro propio ORM o utilizamos alguno que ya haya disponible en la comunidad, si tomamos esta segunda opción podemos considerar a Flask-SQLAlchemy.
Este es una extensión para poder utilizar el popular SQLAlchemy él cual nos permite establecer conexiones a través de Python con los diferentes motores de Bases de Datos, como MySQL o inclusive otros motores no relacionales como MongoDB.
La idea detrás de un ORM es poder hacer consultas de una manera que no dependamos de sintaxis SQL, así si en algún momento deseamos cambiar de motor de Base de Datos, nuestra aplicación no deba sufrir ningún cambio, a diferencia de si escribimos directamente código SQL, en cuyo caso deberíamos cambiar las instrucciones según sea el caso.
Con esto hemos terminado este tutorial, hemos visto apenas un pequeño porcentaje de lo que podemos lograr con Flask, sin embargo es suficiente para darnos cuenta de su gran potencial, sobre todo cuando necesitamos iniciar de forma rápida y sin mucho equipaje un proyecto. Su gran popularidad se debe a que con su estructura modular y extensible, nos permite utilizar muchos componentes que tal vez ya conozcamos de otros desarrollos y no nos limita a trabajar de una forma en particular, a diferencia de frameworks como Django donde tenemos una forma muy particular de hacer las cosas, además de todos los componentes que se tienen que heredar inicialmente para crear una aplicación.