¿Cuándo es mejor usar Flask y cuándo es mejor usar Django para el desarrollo web de Python?

Nota: Esta es una respuesta que utilicé para una publicación de Reddit en Django vs Flask. También es muy relevante para su pregunta.

———-

Primero, Django ha existido por mucho más tiempo, así que sí, será mucho más utilizado debido a las bases de código heredadas. No es necesario extraer Django, si funciona, y reemplazarlo con Flask.

En segundo lugar, puede obtener una aplicación más rápido, en la mayoría de los casos, con Django. Django tiene una serie de “baterías” incluidas, además de que el marco resume gran parte del proceso de desarrollo. Entonces puedes escribir menos y hacer más. Puede centrarse menos en esas partes comunes de cada sitio y centrarse en su producto, y en cómo diferenciarse de productos similares.

En tercer lugar, usé Django y Flask. Todo depende del proyecto.

Cuarto, mira a la comunidad. Ambas comunidades son grandes y de gran apoyo, pero quizás Django tiene una comunidad un poco más grande.

Quinto, mira los paquetes y módulos. ¿Cuántos hay para Django vs Flask? Además, dado que Django ha existido por más tiempo, la base de código es más madura y probada en batalla; y lo mismo vale para los paquetes.

Sexto, si eres un principiante, ve con Flask. Tienes que hacer más, pero aprendes más. Desarrollar con ambos. Mira cuál te gusta más. Por ejemplo, hice el tutorial de Django Polls en Flask y el tutorial de Flaskr en Django. Trata eso.

Séptimo, ¿quieres aprender ambos? Echa un vistazo a Real Python. Soy cofundador Trabajamos con muchas de las mismas aplicaciones en Django, Flask y web2py.

Además del hecho mencionado por @Dave Dash, hay algunas otras cosas que es posible que desee considerar al usar Django vs.Flask y generalmente son un punto más importante para mí que, por ejemplo, la interfaz / admin:

Django incluye algunas cosas que necesitaría implementar usted mismo al usar Flask:

  • Ver middleware, middleware personalizado fácil de agregar que se encuentra entre su vista y la solicitud entrante / respuesta saliente
  • Seguridad, la mayoría de las preocupaciones de seguridad comunes para aplicaciones web se abordan en Django
  • Formularios de Django, incluso si no usa la capa de plantillas, puede usar formularios internamente para la validación de entrada con mucha facilidad
  • Comandos de gestión, fáciles de agregar comandos únicos personalizados utilizando su entorno django (por ejemplo, para cronjobs)
  • las pruebas también son más fáciles de implementar
  • y muchos más de los que se beneficiarán (almacenamiento en caché, manejo de archivos estáticos, etc.)

Elegiría Django sobre Flask para casi todos los proyectos. Simplemente porque tarde o temprano necesita algunas de esas baterías y tenerlas disponibles le ahorrará mucho tiempo. Claro, existe la curva de aprendizaje para Django, pero vale la pena.

En mi experiencia…

  • Matraz Cuando necesitas construir algo, rápido y liviano.
  • Django Cuando necesite más funciones, modelos de usuario y más repetitivo.

Para muchos casos de uso, ambos son perfectamente buenos.

Personalmente, siempre me encuentro volviendo a Flask casi siempre. ¿Por qué? No hay nada que no pueda hacer con el matraz que pueda hacer con Django. Para cada necesidad hay una biblioteca. También me ayuda a ajustar mi archivo de “requisitos”.

Yo diría que depende de tus necesidades.
Si está buscando construir un sitio web para usted, entonces web.py parece más simple y más preciso.
Si su objetivo es encontrar un trabajo en la industria web, entonces django lo es.

Espero eso ayude

He escrito bastantes proyectos con ambos y utilizo el siguiente esquema para decidir cuál es preferible:

  • Para las API de Restful prefiero Flask gracias al generador de swagger a flask. He encontrado que Django Rest Framework es demasiado engorroso para usar
  • Si necesito un conjunto de características como CMS, uso Django (y la aplicación Django CMS)
  • Si el backend es una base de datos NoSQL (como MongoDB), uso Flask. El ORM incluido en Django no tiene ningún uso real en este caso
  • Necesito una interfaz de administrador limitada. Prefiero Django, porque la interfaz de administrador incluida es bastante útil para proyectos pequeños a medianos. Para proyectos más grandes, esta ventaja es menos abierta, ya que necesitamos desarrollar de todos modos la mayor parte de la lógica de administración

Tengo un proyecto donde utilicé ambos al mismo tiempo. El proyecto es una aplicación web tranquila con un paquete Mongo DB desarrollado con Flask. El sitio web relacionado es un CMS Django con una base de datos postgres. La ventaja de esta configuración es que el equipo de marketing puede agregar contenido al sitio web, mientras que la aplicación web puede utilizar todo el poder de MongoDB

web.py, Simple es mejor.