Un microframewok es un conjunto de herramientas que facilitan la creación de aplicaciones web, pero sin pretender cubrir todas las necesidades del programador, dejandole a su elección qué bibliotecas usar. Python es uno de los lenguajes pioneros en este tema, y en general es uno de los mejores lenguajes para backend, y cuenta con una gran gama de opciones, como son Turgo Gears, pyramid, cherrypy, web2py, etc... Pero me encantó la elegancia de Flask. Flask resulta ser una de las aplicaciones mejor documentadas, minimalistas, pero a la vez flexibles para todo los que he necesitado. Les presento un rápido extracto de código para que se puedan dar una idea de lo confortable que es trabajar con este microframework.

¿Pero qué aspecto tiene un hola mundo en flask? 


from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
   return 'Index Page'

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

if __name__ == '__main__':
app.run()

En primer lugar tendremos que importar flask, y usar su clase principal para crear el objeto de nuestra aplicación. Aquí se podrá instroducir diversas configuraciones. 

A continuación, definiremos para cada ruta de nuestro servidor una función que manejará la entrada y devolverá un valor. En este caso devolvemos texto simple, y tenemos dos página. La raíz, que se refiere a la ruta '/' y otra que se llama '/hello' que escribirá hola mundo! Finalmente tendremos que correr nuestra aplicación con app.run()

Tampoco tiene gran dificultad instalarlo en nuestro servidor. Únicamente con las sigueintes líneas, como todo buena herramienta Python será posible contar con la biblioteca para su uso inmediato:

$pip install flask
$FLASK_APP=hola.py flask run 

 Y tendremos corriendo nuestra aplicación en el localhost:5000 para pruebas. 

Fask tiene una gran veriedad de herramientas a su disposición, y en general puede usarse cualquier librería Python que se desee. Pero tiene baterías integradas con el sistema de templates jinja2. ¿Qué significa esto? Para generar páginas de interntet visualmente atractivas podemos escribir nuestro código HTML con marcas de donde insertar los datos generados por el backend. Veamos un ejemplo:

 

from flask import render_template

@app.route('/temp')
@app.route('/temp')
def temp(name=None):
   return render_template('temp.html', name=name)

 Lo cuál generará una página usando temo.html y se le enviará la variable name que se logró obtener desde la entrada de la URL. 

<title></title>
{% if name %}
<h1> Hola {{ name }}</h1>
{% else %}
<h1> Hola Mundo>! </h1>
{% endif %}

Para los programadores de Django esto debe ser conocido. Pero para el resto, es importante notar que el código de la aplicacióne está separada de la parte visual. El template únicamente verá aspectos de colocación de datos y algunas cuestiones lógicas menores. Esto se hace para poder mantener un órden en nuestro código y tener modularidad. Si bien se parece al modelo MVC, no se respeta este y se hace incapié en la cuestión minimalista del código. 

Espero este breve introducción sirva de algo, y los anime a explorar el mundo de Python para Web y de Flask, que es increíble. Los invito a leer la documentación, muy buena por cierto en http://flask.pocoo.org/ 

 

Share This