Elegir un marco mejor

El mundo de los marcos web de Python ofrece muchas opciones. Algunos de los frameworks destacados a considerar son Django, Flask, Bottle, Diesel, Web2py, Pyramid, Falcon, Pecan, etc., que compiten por la mente compartida de los desarrolladores. Los marcos como Pyramid, Django, Web2py y Flask son ideales con su lista de pros y contras; elegir solo uno para su proyecto es una decisión difícil de tomar.

Dash está completamente diseñado para diferentes conjuntos de necesidades. Entonces, como desarrollador, desea reducir las legiones de opciones a la que lo ayudará a terminar su proyecto a tiempo y con perfección.

Si comparamos los frameworks Flask, Pyramid y Django, Flask es un micro-framework dirigido principalmente a aplicaciones pequeñas con requisitos más simples, mientras que Pyramid y Django están dirigidos a aplicaciones más grandes. Pyramid se construye teniendo en cuenta la flexibilidad y la libertad, por lo que el desarrollador tiene las herramientas adecuadas para el proyecto. En caso de pirámide, el desarrollador es libre de elegir la base de datos, la estructura de la URL, el estilo de la plantilla y más. Sin embargo, Django incluye todas las baterías que necesita una aplicación web, por lo que solo necesitamos instalar Django y empezar a trabajar.

Django viene con un ORM, mientras que Pyramid y Flask dejan que el desarrollador elija cómo (o si) quieren que se almacenen sus datos. Generalmente, el ORM más común para aplicaciones web que no son de Django es SQLAlchemy, sin embargo, otras opciones pueden ser DjangoDB, MongoDB, LevelDB y SQLite.

Siendo desarrollador, si tengo que elegir entre Django y Web2py para mi proyecto. Necesito tener una idea de los beneficios y las limitaciones de los marcos. Así que comparemos Django y Web2py -

Django

La comunidad de Django es una gran ventaja. En realidad, esto significa para un desarrollador que la riqueza de recursos será mayor. Específicamente, esto se reduce a:

  • Documentation
  • Recursos de código abierto
  • Soporte de aplicaciones de terceros
  • Soporte de implementación
  • Canales de IRC con desarrolladores útiles

Django tiene una gran comunidad de equipo de desarrollo y documentación. Es el marco adecuado cuando se trata de escribir un backend complejo, ya que proporciona muchas aplicaciones de terceros que le permiten automatizar cosas como la lógica del usuario (registro, autenticación), tareas asincrónicas, creación de API, blogs, etc.

Web2py

Web2py es una buena opción para el desarrollo rápido de aplicaciones web simples o servidores http. A continuación, se presentan algunos de los beneficios y limitaciones de web2py.

Beneficios de Web2py

Los siguientes son algunos de los beneficios del marco Web2py:

  • Web2py es un marco potencial en comparación con Django y Flask en términos de velocidad y simplicidad de desarrollo. Como Web2py usa un lenguaje de plantilla basado en Python, esto permite a los desarrolladores de Python comenzar a escribir código inmediatamente después de comprender los conceptos básicos de cómo escribir plantillas como vistas.

  • Web2py puede ejecutar código compilado en Python como una optimización para reducir el tiempo de ejecución y permitirle distribuir su código de forma compilada.

Limitaciones de Web2py

Las siguientes son algunas de las limitaciones del marco:

  • Web2py admite pruebas de documentación, sin embargo, no admite pruebas unitarias. Ahora, las pruebas de documentación no son la opción óptima debido a su alcance limitado.

  • No hay diferenciación entre modo de producción y modo de desarrollo. En caso de que ocurriera una excepción, el ticket se genera todas las veces y tendrá que navegar hasta el ticket para verificar el error. Esto podría ser útil en el caso de un servidor de producción, pero será difícil en el entorno de desarrollo, ya que los desarrolladores realmente necesitan ver el error al instante en lugar de verificar el número de ticket.

  • Web2py tiene una buena capa de abstracción de base de datos (DAL) que le permite abstraer muchos tipos de motores de base de datos, pero carece de un ORM potente. En caso de que esté tratando con un modelo relativamente grande, su código se dispersará por todas las definiciones y atributos anidados, lo que complica las cosas.

  • No podemos usar herramientas de desarrollo de Python estándar sin modificaciones, ya que web2py tiene un soporte IDE realmente pobre.

El marco Django y Web2py son marcos de pila completa. Esto significa que proporcionan todo el código necesario, desde generadores de formularios hasta diseños de plantillas y validación de formularios, y le permiten escribir cosas de acuerdo con sus necesidades específicas.

Sin embargo, con los marcos que no son de pila como Flask y Pyramid, si desea crear un sitio web con todas las funciones, deberá agregar mucho código y bits adicionales usted mismo. Esto requiere mucha habilidad y tiempo.

Guión

Dash está completamente diseñado para la tarea específica de crear un marco reactivo para paneles. Dash by Plotly es una excelente manera para que el desarrollador de Python cree aplicaciones web interactivas sin tener que aprender Javascript y desarrollo web front-end. Dash está construido sobre Flask, Plotly.js, React y React Js.

No hay comparación entre Dash y otros marcos (mencionados anteriormente) ya que pertenecen a diferentes categorías de marcos. A continuación se muestran algunas de las razones para preferir el tablero sobre otros marcos de tablero interactivos (Tableros de Jupiter, matplotlib y otros):

  • Con solo 50 líneas de código, puede escribir una aplicación Dash simple de "hola mundo", ya que Dash requiere muy poco texto repetitivo.

  • Las aplicaciones completas de Dash están escritas en lenguaje Python, el idioma más preferido a nivel mundial.

  • En su propio código de Python, puede vincular componentes interactivos del tablero como el menú desplegable, entradas de texto, controles deslizantes y gráficos con "devoluciones de llamada" reactivas de Dash.

  • Las IU complicadas en las aplicaciones Dash pueden tener múltiples entradas, múltiples salidas y entradas que dependen de otras entradas.

  • Al mismo tiempo, varios usuarios pueden trabajar en las aplicaciones Dash.

  • Para crear sus propios componentes de Dash con React, dash usa React.js para renderizar componentes e incluye un sistema de complementos.

  • Los desarrolladores o escritores pueden escribir aplicaciones de tablero que respondan al hacer clic, pasar el cursor o seleccionar puntos en el gráfico, ya que los componentes del gráfico de Dash son interactivos.

Conclusión

Podemos concluir que elegir el marco correcto entre muchos marcos de Python disponibles depende únicamente del tipo de proyecto, complejidad, proyecto de nivel pequeño o empresarial, tipo de soporte comunitario disponible o recurso en línea disponible, escalabilidad, seguridad, etc.

Los marcos de Python mencionados anteriormente son los mejores en su clase, pero tienen sus propios beneficios e inconvenientes (según los requisitos del proyecto). Por lo tanto, un tipo de marco no es adecuado para todo tipo de proyectos.