Flask es un micro framework web escrito en Python . Se clasifica como un micro framework porque no requiere herramientas o bibliotecas particulares. [2] No tiene una capa de abstracción de base de datos , validación de formularios ni ningún otro componente donde las bibliotecas de terceros preexistentes proporcionen funciones comunes. Sin embargo, Flask admite extensiones que pueden agregar características de la aplicación como si estuvieran implementadas en Flask mismo. Existen extensiones para mapeadores relacionales de objetos , validación de formularios, manejo de carga, varias tecnologías de autenticación abierta y varias herramientas comunes relacionadas con el framework. [3]
Las aplicaciones que utilizan el marco Flask incluyen Pinterest y LinkedIn . [4] [5]
Flask fue creado por Armin Ronacher de Pocoo, un grupo internacional de entusiastas de Python formado en 2004. [6] Según Ronacher, la idea fue originalmente una broma del Día de los Inocentes que fue lo suficientemente popular como para convertirse en una aplicación seria. [7] [8] [9] El nombre es un juego de palabras con el anterior framework Bottle. [7]
Cuando Ronacher y Georg Brandl crearon un sistema de tablón de anuncios escrito en Python en 2004, se desarrollaron los proyectos Pocoo Werkzeug y Jinja . [10]
En abril de 2016, el equipo de Pocoo se disolvió y el desarrollo de Flask y las bibliotecas relacionadas pasó al proyecto Pallets recién formado. [11] [12] Desde 2018, los datos y objetos relacionados con Flask se pueden renderizar con Bootstrap . [13]
Flask se ha vuelto popular entre los entusiastas de Python. A partir de octubre de 2020 [update], tiene la segunda mayor cantidad de estrellas en GitHub entre los marcos de desarrollo web de Python, solo ligeramente detrás de Django , [14] y fue votado como el marco web más popular en la encuesta de desarrolladores de Python durante los años entre 2018 y 2022 inclusive. [15] [ 16] [17] [18] [19]
El microframework Flask es parte de los Proyectos Pallets (anteriormente Pocoo ), y se basa en varios otros de ellos, todos bajo una licencia BSD .
Werkzeug ( que en alemán significa "herramienta") es una biblioteca de utilidades para el lenguaje de programación Python para aplicaciones de interfaz de puerta de enlace de servidor web (WSGI). Werkzeug puede crear instancias de objetos para funciones de solicitud, respuesta y utilidad. Se puede utilizar como base para un marco de software personalizado y es compatible con Python 2.7 y 3.5 y versiones posteriores. [20] [21]
Jinja, también de Ronacher, es un motor de plantillas para el lenguaje de programación Python. De manera similar al framework web Django, maneja plantillas en un entorno aislado .
MarkupSafe es una biblioteca de manejo de cadenas para el lenguaje de programación Python. El tipo MarkupSafe homónimo extiende el tipo de cadena Python y marca su contenido como "seguro"; la combinación de MarkupSafe con cadenas regulares permite escapar automáticamente las cadenas sin marcar, al tiempo que evita el doble escape de cadenas ya marcadas.
ItsDangerous es una biblioteca de serialización de datos segura para el lenguaje de programación Python. Se utiliza para almacenar la sesión de una aplicación Flask en una cookie sin permitir que los usuarios manipulen el contenido de la sesión.
El siguiente código muestra una aplicación web simple que muestra " ¡Hola mundo !" cuando se visita:
desde el matraz importar Flask app = Flask ( __name__ )@app . route ( "/" ) def hola () -> str : return "Hola mundo"si __name__ == "__main__ " : aplicación.ejecutar ( )