¿Cuáles son las diferencias entre Django, Flask y Web2py en términos de funcionalidad y facilidad?

Nota: Soy un usuario de Flask satisfecho, así que puedo estar un poco sesgado …

Django es un marco de desarrollo web completo, y casi todo está incluido en el paquete estándar. Admin, ORM, … lo encontrarás todo en Django. Si desea obtener un paquete todo incluido, Django es su elección. Django me pareció un poco confuso; Lo intenté un par de veces después de haber aprendido Flask, pero pensé que a menudo era innecesariamente complicado. Revisé el tutorial Escribiendo su primera aplicación Django, parte 1, pero realmente dije: “Solo quiero configurar una aplicación simple, no reconstruir el sitio web del New York Times”.

Flask ofrece la misma funcionalidad, pero tendrá que usar bibliotecas externas. Considero que esto es una ventaja más que una desventaja, por la sencilla razón de que puede elegir y reemplazar fácilmente las cosas. También puede hacer esto en Django, pero es mucho más difícil deshacerse de las bibliotecas de Django, porque están muy bien integradas. Flask es, como se puede ver, mi marco web favorito; Lo uso junto con el ore orm (muy similar al ORM de Django), que también me da una interfaz de administrador y una interfaz de API, si es que las necesitaba.

Compare el tutorial de Django con el tutorial Flask (A Python Microframework) y verá la diferencia en la curva de aprendizaje. Creo que estos tutoriales son más una representación de sus filosofías que sus habilidades; Flask es muy simple (“Hola mundo”), Django inmediatamente profundiza en la configuración de todo (modelos, administración, autenticación). Con Flask, puedes crecer más o menos con la aplicación, mientras que en Django, necesitas saber mucho antes de comenzar a construir.

No estoy de acuerdo con las personas que afirman que hay una diferencia en la funcionalidad; que debería preferir Django sobre Flask si su aplicación web es grande o compleja. Flask también puede manejar grandes aplicaciones web, y toda la funcionalidad que ofrece Django también está disponible en Flask.
No, no necesita poner todo su código en un archivo en Flask, como parece afirmar mucha gente; eso es totalmente de usted. Puede hacerlo para aplicaciones pequeñas, pero también puede usar una plantilla con muchas carpetas para aplicaciones más grandes.
Hay bibliotecas de seguridad (inicio de sesión, registro, roles de usuario, decators para todo esto), manejo de formularios, orm, admin, API, … De hecho, todo lo que pueda desear.

Nunca he usado web2py antes, por lo que no diré demasiado al respecto, pero al desplazarme por la documentación, parece bastante ligero. EDITAR (vea el comentario de Anthony Bastardi): tiene muchas características incorporadas que lo hacen algo parecido a Django: capa de abstracción de base de datos, sistema de formularios, funcionalidad de cuadrícula y CRUD, control de acceso RBAC, programador, servicios web, un wiki incorporado, …

Creo que al final todo se reduce, en su mayor parte, a la preferencia y, en menor medida, a lo que harás con él. Todos estos marcos son extremadamente capaces; lo que puede hacer depende mucho más del desarrollador que del marco. La decisión más fundamental que tomará es en qué idioma construirá su aplicación web, no en qué marco. Al final, todavía está escribiendo Python, y la mayor parte de su código será un código Python bastante ‘estándar’ (es decir, no específico del marco web). Una vez que haya tomado la decisión de usar un idioma determinado, se quedará con él (Facebook es un buen ejemplo); no puede cambiar repentinamente a, por ejemplo, Ruby una vez que su aplicación web tenga una cantidad importante de líneas de código.

Recomendaría aprender los conceptos básicos de todos estos marcos (consulte los tutoriales) y luego considere cuál le parece más ‘lógico’ y para sus necesidades específicas.

Bueno, nunca he trabajado con web2py, todavía intentaré responder.

Django: paquete completo de servicios, casi todo incluido en el propio marco. Enorme demanda, popularizándose día a día. No hay rigor para apegarse a la arquitectura, por lo que todo depende del desarrollador.

Frasco: Simple, de tamaño pequeño (micro framework), depende del lote para bibliotecas de terceros, ya que no incluye todo lo que contiene.

Web2Py: muy antiguo, intenta competir con django pero trabaja con una filosofía totalmente diferente. Las herramientas principales están basadas en gui. Mucha gente dice que es similar a los rieles.

Para algunos detalles que comparan web2py con Django y Flask, vea ¿Cuáles son las ventajas de web2py sobre Django? y ¿Cómo se comparan Flask y Web2py para un sitio web básico con membresía, inicio de sesión y carga / descarga de archivos en Google App Engine?

Por lo general, web2py es bastante fácil de aprender y le brinda mucha potencia con un esfuerzo mínimo: lo mejor de ambos mundos (Django y Flask).