En la actualidad existen muchas opciones para crear páginas web y muchos lenguajes (PHP, JAVA), y en este caso Flask nos permite crear de una manera muy sencilla aplicaciones web con Python.

Flask es un “micro” Framework escrito en Python y concebido para facilitar el desarrollo de Aplicaciones Web bajo el patrón MVC.

La palabra “micro” no designa a que sea un proyecto pequeño o que nos permita hacer páginas web pequeñas sino que al instalar Flask tenemos las herramientas necesarias para crear una aplicación web funcional pero si se necesita en algún momento una nueva funcionalidad hay un conjunto muy grande extensiones (plugins) que se pueden instalar con Flask que le van dotando de funcionalidad.

De principio en la instalación no se tienen todas las funcionalidades que se pueden necesitar pero de una manera muy sencilla se pueden extender el proyecto con nuevas funcionalidades por medio de plugins.

El patrón MVC es una manera o una forma de trabajar que permite diferenciar y separar lo que es el modelo de datos (los datos que van a tener la App que normalmente están guardados en BD), la vista (página HTML) y el controlador (donde se gestiona las peticiones de la app web).

¿Qué es un Framework?

Actualmente en el desarrollo moderno de aplicaciones web se utilizan distintos Frameworks que son herramientas que nos dan un esquema de trabajo y una serie de utilidades y funciones que nos facilita y nos abstrae de la construcción de páginas web dinámicas.

En general los Frameworks están asociado a lenguajes de programación (Ruby on Rails (Ruby), Symphony (PHP)), en el mundo de Python el más conocido es Django pero Flask es una opción que quizás no tenga una curva de aprendizaje tan elevada pero nos posibilita la creación de aplicaciones web igual de complejas de las que se pueden crear en Django.

Ventajas de usar un Framework.

  • Proporciona una estructura del proyecto, es decir, todas las Apps que estén construidas con Flask van a tener los mismos elementos y los mismos ficheros.
  • Facilita la colaboración.
  • Es fácil encontrar librerías adaptadas al Framework.

Frameworks en Python.

En la Wiki de Python se muestra un listado con los distintos Frameworks compatibles, se podrá ver que algunos de los de la lista dicen “full stack” que quiere decir que el Framework cuando se instala por primera vez viene con numerosas funcionalidades o las tiene casi todas para hacer una app web completa, ejemplo: Django. Hay otros que no son “full stack” como por ejemplo Flask.

¿Por qué usar Flask?

  1. Flask es un “micro” Framework: Para desarrollar una App básica o que se quiera desarrollar de una forma ágil y rápida Flask puede ser muy conveniente, para determinadas aplicaciones no se necesitan muchas extensiones y es suficiente.
  2. Incluye un servidor web de desarrollo: No se necesita una infraestructura con un servidor web para probar las aplicaciones sino de una manera sencilla se puede correr un servidor web para ir viendo los resultados que se van obteniendo.
  3. Tiene un depurador y soporte integrado para pruebas unitarias: Si tenemos algún error en el código que se está construyendo se puede depurar ese error y se puede ver los valores de las variables. Además está la posibilidad de integrar pruebas unitarias.
  4. Es compatible con Python3.
  5. Es compatible con wsgi: Wsig es un protocolo que utiliza los servidores web para servir las páginas web escritas en Python.
  6. Buen manejo de rutas: Cuando se trabaja con Apps Web hechas en Python se tiene el controlador que recibe todas las peticiones que hacen los clientes y se tienen que determinar que ruta está accediendo el cliente para ejecutar el código necesario.
  7. Soporta de manera nativa el uso de cookies seguras.
  8. Se pueden usar sesiones.
  9. Flask no tiene ORMs: Pero se puede usar una extensión.
  10. Sirve para construir servicios web (como APIs REST) o aplicaciones de contenido estático.
  11. Flask es Open Source y está amparado bajo una licencia BSD.
  12. Buena documentación, código de GitHub y lista de correos.

Extensiones de Flask.

Aqui se mencionaran las mas usadas con Flask:

  • flask-script: Permite tener un comando de la línea de comando para manejar la aplicación.
  • flask-Bootstrap: Hojas de estilo para la página.
  • flask-WTF: Sirve para generar formularios de HTML con clases y objetos.
  • flask-Sqlalchemy: Sirve para poder generar el modelo de datos.
  • flask-login: Sirve para la autenticación de usuario y contraseña.

Flask es una alternativa para la construcción de Apps Web con Python, tiene una buena curva de aprendizaje y se puede aprender muy rápido.

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