Are Flask and Bottle scalable? (Spanish)
Tags: python, spanish, espanol, webdev
Published: 2019-11-05 10:27:16

Un buen marco de trabajo es el sueño de todo desarrollador. Ayuda a automatizar la implementación de soluciones comunes, a la vez que reduce el tiempo de desarrollo para permitir que los desarrolladores se centren más en trabajar en la lógica de la aplicación en lugar de en la rutina y otros elementos innecesarios.

Un buen <a href="https://python.org">Python</a> framework no es diferente. Dependiendo del tamaño y la complejidad del proyecto, seleccionar el marco web adecuado para python</a> podría ayudar a eliminar la mayor parte del estrés. Si está trabajando en un sistema grande que tiene muchos requisitos y características, es posible que necesite obtener una estructura web de pila completa.

Sin embargo, si está trabajando en un proyecto más simple y pequeño, entonces el uso de un micro-marco está en orden. Tenga en cuenta que esto no significa que un marco de trabajo web sea mejor que el otro, sino que son únicos por su diseño y útiles para diferentes propósitos.

## Frameworks

<img src="https://cdn.pixabay.com/photo/2017/09/29/10/06/painter-2798557__340.jpg" alt="framework">

Hay muchos tipos de marco de trabajo de Python que se pueden utilizar dependiendo del tipo de proyecto. Algunos de ellos incluyen: Django, Flask, Pyramid, Web2py, Bottle, CherryPy. En este artículo, nos centraremos más en dos de estos marcos web: <a href='https://flask.palletsprojects.com/en/1.1.x/'>Flask</a> y <a href="https://bottlepy.org/docs/dev/">Bottle</a> es una microestructura para comprobar si son escalables para su uso. 

<a href="https://pythonbasics.org/flask-tutorial-hello-world/">Flask es un framework web de Python </a> inspirado en el framework de Sinatra ruby y disponible bajo la licencia BSD, mientras que <a href="https://bottlepy.org/docs/dev/tutorial.html#quickstart-hello-world">Bottle es un microframework </a> que ayuda a implementar todo en un único archivo fuente.

Para las aplicaciones web, la escalabilidad significa dos cosas:
* La capacidad de la aplicación para responder a todas las peticiones incluso si se vuelve muy popular y el número de usuarios y peticiones aumenta exponencialmente (por un factor de 10^x).
* La capacidad del marco de trabajo de la web para aceptar más características (tantas como sea posible) cuando se le ocurran nuevas. Si el código se ve afectado por la adición de una característica, entonces no es escalable.

Ahora que entendemos lo que significa escalable en este contexto, veamos cómo actúan ambos marcos en respuesta a estos dos significados.

## Escalar la aplicación para manejar más usuarios/solicitudes

<img src="https://cdn.pixabay.com/photo/2016/08/15/08/35/woman-1594711__340.jpg" alt="users">

No importa si se trata de un Flask o una Flask, lo que hay que hacer en este caso no es reprogramar la aplicación para poder atender a más usuarios o peticiones, lo que hay que hacer es reprogramar otras cosas alrededor de la aplicación. 

Puede utilizar <a href="https://en.wikipedia.org/wiki/FastCGI">FastCGI</a> para ayudar a su aplicación a iniciar tantas instancias como sea posible o necesario, para que pueda gestionar más solicitudes.

## Escalar la aplicación para aceptar más funciones 

Flask viene con algunas herramientas maravillosas para ayudar a escalar. Existe una herramienta llamada <a href="https://flask.palletsprojects.com/en/1.1.x/blueprints/">Blueprints in Flask</a> que le ayuda a modularizar su código para que pueda ponerlo en chunks independientes cuando su base de código crezca y tenga que añadir más líneas de código. Esta herramienta también le ofrece la opción de personalizar su aplicación para muchos clientes.

Bottle también viene con un montón de herramientas que pueden ayudar a escalar para aceptar más características para que su código existente no se vea afectado por la adición de estas características. 

**Related links:**
* <a href="https://pythonbasics.org/flask-tutorial-hello-world/">Flask hello world tutorial</a>
* <a href="https://flask.palletsprojects.com/en/1.1.x/">Flask Python Micro Framework</a>
* <a href="https://bottlepy.org/docs/dev/">Bottle: Python Web Framework</a>