Uno de los temas más importantes a la hora de comenzar en la programación WEB con Python es elegir un Framework que nos permita pasar a la web nuestros proyectos. Desde mi punto de vista hay ciertas ventajas para alguién que se inicia en utilizar Flask, ya que como lo definen sus desarrolladores es un micro framework, tiene una curva de aprendizaje que permite muy rapidamente hacer un proyecto funcional y con ayuda de la comunidad hay una gran cantidad de librerías para hacer casi todo. Suelo escuchar que cuando uno avanza en la programación web, el salto a Django es casi inevitable y a eso viene este post., sinceramente no tengo una gran experiencia en este Framework, pero hasta el momento no le encontre ventajas significativas respecto al uso de Flask y espero sus comentarios para enriquecer el debate sobre este tema ya que llevo unos cuantos años programando con Flask y se vé mucha gente en la comunidad que tiene buena experiencia en Django.
hola! desde mi experiencia hacer un CRUD robusto con el admin de django alcanza, es algo que en Flask te lleva un poquito mas… digo cuando empecé con Django dije “porque perdí tanto tiempo con Flask”; obvio, hoy, entiendo que se usan para cosas distintas, eso de decir:
" el framework adecuado para la tarea adecuada" me parece la meca de esta discusión.
Si tenés que hacer un sitio que es 90% CRUD, no hay buen motivo para no usar Django; definís tus modelos y enchufás los templates y listo, te olvidás. Si encima necesitás algo relativamente común, le instalás el plugin y listo. A eso le sumás el panel de admin que definís toda la sección de administración en un par de líneas, y sos Gardel.
Si tenés que armar una API, por ahí incluso te conviene más FastAPI: definís un par de modelos y los endpoints te llevan dos líneas cada uno.
O sea, si vas a terminar con 50 endpoints semi-idénticos que lo único que hacen es leer de una DB y escupir JSON, te hincha más tener que andar poniendo todo en archivos separados como quiere Django.
Flask lo usaba para eso último, hasta que encontré FastAPI. Puede que valga la pena si lo que estás haciendo es muy específico, o si querés integrar una DB que ya existe o algo así; por ejemplo, si estuvieras haciendo un Bot de Discord, por ahí pinta más fácil hacer un cachito más de esfuerzo en escribir unas queries a mano que tratar de enseñarle a Django exactamente cómo armaste la DB…
Tal cual. También se puede poner en la balanza el gusto personal, y el stack completo de tecnologías. Quizá usás Flask/Django sólo para el backend, ofreciendo una API rest a un frontend Javascript React/Vue/Etc.