arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

¿Qué Frameworks web de python elegir?

Eduardo Ismael Garcia

Full Stack Developer at Código Facilito.

av_timer 3 Min. de lectura

remove_red_eye 7465 visitas

calendar_today 20 Febrero 2023

Si estas interesado en comenzar en el desarrollo web con Python, sin duda alguna, en algún momento, te has preguntado ¿Qué librería o Framework web debo aprender y/o dominar para estar tarea?

Afortunadamente, o desafortunadamente, existen una gran cantidad de librerías y frameworks de los que podemos elegir para poder llevar Python a la web. En lo personal destaco 2. Flask y Django.

Frameworks web por excelencia al momento de hablar del desarrollo web con Python.

Es por ello que, en este post, me gustaría hablemos acerca de ¿Qué Framework debo elegir para comenzar como dev Backend con Python?

Será un post sumamente interesante, así que te invito a que te quedes.

Bien una vez dicho todo esto, y sin más introducción, comencemos con esta entrega.

Flask

Comencemos con Flask. Verás, Flask es definido como un micro framework de Python, capaz de crear aplicaciones web con este lenguaje.

De Flask se destaca su curva de aprendizaje, ya que este es un Framework fácil de aprender, su sintaxis es limpia y fácil de comprender. Con muy pocas líneas de código, y con muy pocos archivos, es fácil tener un proyecto cien porciento funcional, seguro y profesional

Veamos un ejemplo.

from flask import Flask, render_template

app = Flask(__name__)

app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

Con practicamente 7 líneas de código ya tenemos nuestro primer servidor con Python Y Flask.

¿Bastate cool no lo crees?

Algo que me gusta mucho de Flask es que si somos nuevos en el desarrollo web, conceptos como requests, responses, jsons, middlewares entre otros, los podemos aprender y dominar a la par que aprendemos Flask.

Ahora, si bien es cierto, flask carece de ciertas herramientas, como quizás un ORM, un gestor de migraciones o un shell interactivo dejame decirte que no debes de preocuparte, ya que existe una amplia gama de extensiones que fácilmente poder incorporar a nuestros proyecto, tal y como de piezas de lego se tratase podemos añadir o quitar dependencias.

Creeme, si necesitas algo en particular ya existirá alguna librería que se puede implementar con Flask y de esta forma puedas solventar tus necesidades.

Esto tiene ventajas y desventajas. La principal ventaja es que eres tú quien decide que dependencia añadir o quitar del proyecto. Solo trabajaras con lo estrictamente necesario, ni una librería más o una librería menos. Haciendo que tu proyecto sea liviano en comparación con otros.

La desventaja esta en que, para poder añadir una nueva dependencia al proyecto es necesario configurarlas, y esto puede llevar algo de tiempo, por lo tanto si el tiempo es un recurso crucial en tu desarrollo, flask quizás no sea tu mejor opción.

Django

Ahora hablemos de Django. Django es quizás el Framework web más conocido de Python, y no es de extrañarse, grandes empresas utilizan Django en su día a día.

Django destaca por poseer una gran variedad de herramientas para comenzar a desarrollar desde el primer minuto. Django a diferencia, por ejemplo de Flask posee un ORM propio, un sistema de autenticación de usuarios, una administrador cien porciento funcional, un motor de plantillas y diferente módulos y paquetes para el tema web.

Esta es quizás la principal ventaja de Django, que prácticamente todo lo que necesitamos para desarrollar páginas web profesionales Django ya lo tiene integrado. No es necesario instalar más cosas o configurar nuevas, Django ya esta listo para comenzar.

Además de todo esto hay que destacar que Django posee una de las mejores documentaciones que podemos encontrar en el mercado. Esta, hay que decirlo, es bastante clara y concisa. Es de fácil acceso y se encuentra versionada, que es lo mejor de todo.

Como no todo puede ser bueno, toca el turno de hablar de lo malo de Django, y sin duda debemos comenzar con su alta curva de aprendizaje. Verás, al Django ya poser una gran cantidad de herramientas y que estas ya están configuradas, resulta en la sensación de estar trabajando todo el tiempo con cajas negras.

Es necesario tener conocimientos de la web para comenzar con Django, si no es así tarde o temprano estaré codificando sin saber a ciencia ciertas exactamente que estamos haciendo, o por qué lo estamos haciendo.

Puedo aventurarme a decir que Django dificilmente es el Framework para aprender conceptos.

Otra desventaja es que, aunque Django permite modificar ciertos apartados, también hay que mencionar que su flexibilidad es limitada. Algunas características pueden ser difíciles de personalizar o modificar para adaptarse a necesidades específicas, especialmente para aquellos desarrolladores que no tienen experiencia en el framework.

Un ejemplo es crear tu propio modelo User y conservar funcionalidades de autenticación. O simplemente añadir nuevos comportamientos a nuestros modelos. Todo esto puede tornarse complicado-

Letras finales

En conclusión tanto Flask como Django son excelentes Frameworks para llevar Python a la web. Recomiendo ampliamente Flask para todas aquellas personas que están comenzando en el desarrollo backend y quieren aprender y afianzar conocimientos.

Si buscas una solución ligera, rápida y flexible para construir aplicaciones web pequeñas y medianas, Flask puede ser la mejor opción.

Ojo, aunque recomiendo Flask para comenzar y en proyectos pequeños o medianos, no debemos dejar de lado que con Flask se puede realizar exactamente las mismas cosas que con Django.

Por otro lado, recomiendo Django a todas aquellas personas que vengan de otro framework web y quieran probar con Python.

De igual forma recomiendo Django si el proyecto que quieres realizar es grande y/o el tiempo de desarrollo sea crucial.

Bootcamp Ciencia de Datos

12 semanas de formación intensiva en los conocimientos, fundamentos, y herramientas que necesitas para ser científico de datos

Más información