Prólogo

Lee esto antes de empezar con Flask. Es de esperar que responda a algunas preguntas sobre el propósito y los objetivos del proyecto, y cuándo debe o no debe utilizarlo.

¿Qué significa «micro»?

“Micro” no significa que toda tu aplicación web tenga que caber en un solo archivo de Python (aunque ciertamente puede), ni significa que Flask carezca de funcionalidad. El «micro» en microframework significa que Flask pretende mantener el núcleo simple pero extensible. Flask no tomará muchas decisiones por usted, como qué base de datos utilizar. Aquellas decisiones que sí toma, como el motor de plantillas a utilizar, son fáciles de cambiar. Todo lo demás depende de usted, de modo que Flask puede ser todo lo que necesite y nada que no necesite.

Por defecto, Flask no incluye una capa de abstracción de base de datos, validación de formularios o cualquier otra cosa donde ya existen diferentes bibliotecas que pueden manejar eso. En su lugar, Flask soporta extensiones para añadir dicha funcionalidad a tu aplicación como si estuviera implementada en el propio Flask. Numerosas extensiones proporcionan integración de bases de datos, validación de formularios, manejo de cargas, varias tecnologías de autenticación abierta, y más. Flask puede ser «micro», pero está listo para su uso en producción en una variedad de necesidades.

Configuración y convenciones

Flask tiene muchos valores de configuración, con valores por defecto razonables, y unas cuantas convenciones al empezar. Por convención, las plantillas y los archivos estáticos se almacenan en subdirectorios dentro del árbol de fuentes de Python de la aplicación, con los nombres templates y static respectivamente. Aunque esto puede cambiarse, normalmente no es necesario, especialmente cuando se empieza.

Crecer con Flask

Una vez que tenga Flask en funcionamiento, encontrará una variedad de extensiones disponibles en la comunidad para integrar su proyecto para la producción.

A medida que su base de código crece, usted es libre de tomar las decisiones de diseño apropiadas para su proyecto. Flask continuará proporcionando una capa de pegamento muy simple a lo mejor que Python tiene para ofrecer. Puedes implementar patrones avanzados en SQLAlchemy u otra herramienta de base de datos, introducir persistencia de datos no relacionales según sea apropiado, y aprovechar las herramientas agnósticas de marco construidas para WSGI, la interfaz web de Python.

Flask incluye muchos ganchos para personalizar su comportamiento. Si necesitas más personalización, la clase Flask está construida para subclasificar. Si tienes curiosidad por los principios de diseño de Flask, dirígete a la sección sobre Decisiones de diseño en Flask.