Cuando un entusiasta de la programacion o un Pythonista novato tiene el suficiente tiempo en el lenguaje, se topa con una de las mas grandes preguntas ?A que me enfoco?
Esta pregunta, aunque parezca sencilla, le ha tomado a varios programadores (Yo incluida) algo de tiempo; el saber a que dedicar tu tiempo es una decision compleja y el miedo a equivocarnos siempre esta presente, mas aun con un lenguaje como lo es Python, que nos brinda un abanico gigantezco de especialidades como son:
- Automatizacion
- Analisis de datos
- Inteligencia Artificial
- Desarrollo Web
- Desarrollo de Aplicaciones de Escritorio
- Etc.
Una de las opciones mas populares entre la comunidad hoy en dia, en especial por aquellas personas no muy afines a las matematicas o la estadistica, es el desarrollo web.
Python nos permite desarrollar aplicaciones web Backend con una diversa cantidad de frameworks como son Django, Pyramid, CherryPy, etc.
Cada uno con sus ventajas y desventajas, pero el que nos trae aqui el dia de hoy es sin duda uno de mis favoritos Flask.
?Que es Flask?
Flask es un framework minimalista escrito en Python, que utiliza un motor de plantillas llamado Jinja para poder mostrar paginas HTML con contenido dinamico y se basa en las especificacion WSGI de Werkzeug.
En general Flask esta disenado para la creacion de aplicaciones web de manera rapida y con muy pocas lineas de codigo, resulta realmente sencillo para aquellos que estan dando sus primeros pasos en este mundillo del backend.
Una de los puntos mas fuertes de Flask es su comunidad, la cual se esmera en cuidar y mejorar a este framework mediante aportes en su repositorio de Github o con la creacion de extensiones. Escuchaste bien EXTENSIONES.
Flask carece de varias caracteristicas con la que suelen contar otros frameworks, como son validacion de formularios, manejo de subida de archivos, ORM, etc. Por lo que la comunidad se ha encargado tanto de implementar extensiones que cubran estas nuevas funcionalidades, como de facilitar el trabajo «tedioso» que puede llegar a ocurrir.
A picar Codigo
Antes de empezar un proyecto en Flask primero debemos de tener instalado Python y configurado el pip; teniendo esto podemos escribir el siguiente comando desde nuestra terminal
$ pip install flask
El uso de Flask (y cualquier framework de Python) se recomienda junto a un entorno virtual, por temas de aprendizaje nos saltaremos esa parte.
Ya con Flask instalado pordemos empezar con nuestra aplicacion, primero creamos una carpeta en donde crearemos nuestro proyecto y dentro de esta un archivo main.py que es en el que escribiremos nuestra aplicacion.
- Paso 1: Importar Flask e inicializar nuestra aplicacion
from flask import Flask
app = Flask(__name__)
En este paso lo unico que hemos hecho es importar la clase Flask de la libreria flask (Si esta notacion te parece compleja en unos dias escribire un post acerca de las reglas de estilo en Python) y creamos una variable app la cual es un objeto de la clase Flask, notese que al constructor de la clase le pasamos el parametro __name__ esto se hace para hacer saber a Flask que este es el archivo principal desde donde se ejecutara nuestra aplicacion.
- Paso 2: Creacion de rutas
Ninguna aplicacion web es nada sin sus rutas, son estas las que permitiran al usuario final el poder comunicarse con nuestra aplicacion mediante una URL en su navegador, la forma de crear una ruta en flask es la siguiente:
@app.route('/')
def index():
return 'Hola Mundo desde Flask!'
Como puedes ver utilizamos el decorador route de nuestra variable app para crear las rutas, como parametro del decorador le pasamos la ruta que utilizar; la ruta / hace referencia a la raiz de nuestro proyecto, es decir el punto de inicio.
Despues del decorador debe ir una funcion con algun nombre significativo, la cual siempre debe de retornar algun valor.
- Paso 3: Ejecutar nuestra aplicacion
Ya con esto tenemos todos los aspectos basicos para ejecutar nuestra aplicacion, ahora solo nos queda hacer uso de la funcion run para empezar con la magia, la instruccion se ve asi
app.run(port=5000, debug=True)
Con esta linea estamos listos para ejecutar nuestra aplicacion, notese que pasamos dos parametros a la funcion port y debug; estos parametros no son obligatorios por lo que puedes eliminarlos, port nos permite elegir el puerto por donde se comunicara nuestra aplicacion (por defecto es el 5000) y debug nos permite activar el modo del mismo nombre en nuestra aplicacion, con el debug en True, Flask nos proporcionara una ventana especial cuando surga algun error, asi como un hot reload del servidor cuando se realize un cambio en el proyecto.
Finalmente nuestra aplicacion debe quedar algo asi
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hola Mundo desde Flask!'
app.run(port=5000, debug=True)