9 mejores marcos de Python para crear aplicaciones pequeñas y empresariales

Python es un juguete divertido y un lanzallamas aterrador. Lo mismo ocurre con lo que puedes hacer con Python.


Python es amado por aficionados, científicos y arquitectos por igual..

Es muy fácil comenzar, tiene abstracciones de orden superior y capacidades de metaprogramación para construir sistemas grandes y complejos, y tiene un montón de bibliotecas para hacer casi cualquier cosa. Claro, hay limitaciones cuando se trata de concurrencia y tipeo fuerte, pero puedes evitarlas.

En este artículo, echaremos un vistazo a algunos de los mejores marcos de Python cuando se trata de crear aplicaciones web grandes y pequeñas.

Django

los Django framework ha resistido la prueba del tiempo en el marco web de acceso para la comunidad Python. Si asaltaste a un desarrollador de Python mientras dormía y los forzaste a construir una aplicación web a punta de pistola, automáticamente alcanzarían a Django de la misma manera que un Rubyist alcanzará a Rails.

Y hay una buena razón para eso. Django es, como dice el lema, “un marco web para perfeccionistas con plazos”. Es lo que se llama un marco de “baterías incluidas” (al igual que Python es un lenguaje que incluye baterías), que proporciona todas las funciones comunes listas para usar.

Con estas características integradas, Django reduce enormemente el tiempo de desarrollo:

  • Un ORM práctico y agradable, con migraciones creadas y aplicadas automáticamente por el marco.
  • Andamios para la generación automática de panel de administración basado en sus modelos.
  • Soporte para cookies, sesiones, middleware, plantillas, etc..
  • Las características de seguridad como la prevención XSS, la prevención CRSF, etc., se aplican automáticamente.
  • Funciona con prácticamente todas las bases de datos (es fácil encontrar adaptadores donde no existe soporte oficial)
  • Aunque soporte de primera clase para datos geográficos y consultas espaciales GeoDjango

Y mucho, mucho más. Basta decir que Django es un marco web completo y amigable.

Django es para ti?

Absolutamente sí.

Django tiene un excelente sentido para todos los casos de uso, ya sea la creación rápida de prototipos o la planificación de una aplicación empresarial. La única ventaja que encontrarás es la estructura del marco. Dado que Django se inclina hacia atrás para que el desarrollo sea rápido y fácil para usted, impone su estructura (un concepto llamado “convención sobre la configuración”) en el desarrollador, con lo que puede no estar de acuerdo. Por ejemplo, si desea reemplazar el Django ORM con otra cosa (por ejemplo, SQL Alchemy), prepárese para las sorpresas..

¿Estás interesado en convertirte en desarrollador full stack con Django y Python? – Mira esto fantástico curso en línea.

Matraz

Mientras Django ocupa casi todo el mindhare en el desarrollo web de Python, Matraz es un fuerte contendiente.

A diferencia de Django, Flask es un “micro-marco”, lo que significa que se enfoca en hacer algunas cosas mínimas y correctas, y deja el resto a usted. Este “el resto depende de usted” puede ser una fuente de frustración o deleite, dependiendo de cuáles sean sus objetivos. Para aquellos que saben lo que están haciendo y quieren crear con amor sus aplicaciones web eligiendo los componentes de su elección, Flask es un regalo del cielo.

Flask ofrece las siguientes características:

  • Enrutamiento, plantillas, administración de sesiones y otras características útiles.
  • Soporte completo para pruebas unitarias
  • Una arquitectura mínima y conectable
  • Soporte REST de primera clase
  • Compatibilidad con Blueprints, la arquitectura exclusiva de Flask para pequeñas aplicaciones web
  • Elija sus paquetes para ORM, migraciones, etc..
  • Estructura de aplicación flexible: coloque sus archivos donde tengan más sentido para usted
  • Publicación de archivos estáticos
  • Compatible con WGSI

Es frasco para ti?

Como ya se dijo, Flask es un marco web mínimo, con todo dividido en componentes individuales que puede intercambiar. Si tiene prisa por construir un prototipo, pasará mucho tiempo tomando decisiones triviales sobre la base de datos, la estructura de carpetas, el enrutamiento, etc., que pueden resultar contraproducentes. Flask funciona mejor cuando se trata de un proyecto serio y estable de mediana a gran escala, especialmente API REST.

Botella

Si pensabas que el enfoque de Flask no era lo suficientemente mínimo y que aún te gustaría tener más control, saluda a Botella.

Bottle se desnuda aún más, hasta el punto de que la única dependencia es la biblioteca estándar de Python. Esto significa que no hay instalación pip o instalación pip que, aunque lo más probable es que necesite hacerlo antes de mucho tiempo. He aquí por qué Botella se destaca para algunas personas:

  • Implementación de un solo archivo. Sí, toda su aplicación vive en un solo archivo “.py”.
  • Sin dependencias externas. Si tiene instalada la versión correcta de Python, está listo para comenzar.
  • Suministra su motor de plantillas, que puede intercambiarse con Jinja2, Mako o Cheetah.
  • Soporte para formularios, encabezados, cookies y carga de archivos..
  • Servidor web incorporado, que se puede reemplazar fácilmente.

Es botella para ti?

Si está creando una aplicación realmente pequeña (digamos, menos de 500 líneas de código) sin requisitos especiales, Bottle podría tener mucho sentido para usted. Es un enfoque completo y sin sentido para crear aplicaciones web, pero en la práctica, encontrará que está más obstaculizado que ayudado por Bottle. La razón es que el mundo real siempre está cambiando y antes de que te des cuenta. Se le caerán nuevos requisitos en la cabeza. En ese punto, poner todo en un solo archivo se convertiría en una tarea.

Además, si crees que Bottle y Flask son casi iguales, tienes razón. Propuestas de fusionando los dos datan de 2012, e incluso Armin, el creador de Flask, está de acuerdo con eso. Sin embargo, Marcel, el creador de Bottle, mantiene una estricta distinción ideológica debido al enfoque de un solo archivo e insiste en que los dos permanecen separados.

Zope

Zope es complicado de explicar, pero lo intentaré. Sí, es un marco web que se puede utilizar para crear aplicaciones grandes o pequeñas, pero eso no es todo. Zope es más una plataforma que consiste en herramientas (marcos web incluidos) creadas bajo la filosofía de Zope y mantenidas por Zope Corporation.

Zope tiene varios componentes y características interesantes adecuados para el desarrollo de aplicaciones empresariales:

  • Una arquitectura de registro y descubrimiento de componentes para configurar una aplicación grande.
  • ZODB – (la única) base de datos de objetos para Python para almacenar objetos de forma nativa.
  • Marco completo y estándares para sistemas de gestión de contenido
  • Un conjunto de marcos de aplicaciones web: el canónico todavía se llama Zope, aunque se han construido varios marcos nuevos (como Grok)..
  • Fuertes estándares para el desarrollo, lanzamiento y mantenimiento de software..

Zope es para ti?

Si buscas un entorno altamente estructurado para crear aplicaciones realmente grandes, Zope es bueno. Dicho esto, también se encontrará con una buena cantidad de problemas. Si bien Zope continúa evolucionando, la comunidad es realmente pequeña, en la medida en que muchos desarrolladores de Python ni siquiera han oído hablar de ella. Encontrar tutoriales y documentación extensa es difícil, así que prepárate para investigar mucho (¡aunque la comunidad es realmente útil!). Además, los desarrolladores de Python con los que te encuentres pueden no querer aprender Zope y “diluir” su conjunto de habilidades.

TurboGears

TurboGears es un marco altamente flexible que tiene una arquitectura genuinamente composable. Es un marco que se adapta a sus necesidades y puede usarlo para crear una aplicación de un solo archivo o un gigante de múltiples inquilinos.

TurboGears tiene algunas características elegantes, algunas de las cuales no están presentes en los marcos populares (como Django) o son difíciles de construir:

  • Soporte de primera clase para múltiples bases de datos.
  • Transacciones de bases de datos múltiples
  • Altamente modular: comience con un solo archivo y escale todo lo que necesite
  • Un poderoso ORM (SQLAlchemy, que es más maduro y capaz que el ORM de Django)
  • Arquitectura enchufable basada en la especificación WSGI
  • Soporte incorporado para fragmentación de bases de datos
  • Una interfaz basada en funciones en lugar de jerarquías profundas y rígidas orientadas a objetos.

TurboGears es para ti?

Si desea desarrollarse felizmente y quiere un marco probado, maduro y robusto alejado del ruido de los medios de “increíble, de próxima generación” y todo eso, TurboGears es una excelente opción. Es muy respetado en la comunidad y tiene una documentación completa y extensa. Claro, TurboGears no es obstinado, lo que significa que la configuración inicial y el tiempo de configuración pueden ser más, pero es el marco ideal para el desarrollo de aplicaciones empresariales.

Web2py

Web2py comenzó como un proyecto de pasatiempo y se lanzó en 2007. Sus objetivos son hacer que el desarrollo web sea fácil y accesible para todos.

Como resultado, Web2py lleva el enfoque de dependencia cero al extremo: no tiene requisitos, nada que instalar e incluye un editor basado en la web con todas las funciones para el desarrollo, la gestión de bases de datos y la implementación.

Casi puedes pensar en él como Android Studio, que es más un entorno completo que un simple framework. Algunas características interesantes que tiene Web2py son:

  • Prácticamente sin curva de aprendizaje.
  • Núcleo mínimo (solo 12 objetos), que incluso se puede memorizar!
  • Plantillas de Python puro
  • Protección contra XSS, CSRF y otros ataques.
  • Una API agradable y consistente

¿Web2py es para ti??

Web2py es un marco estable y divertido, pero es difícil recomendarlo frente a otras opciones como Django, Flask, etc. Casi no hay trabajos, y la historia de las pruebas de unidades no es excelente. Dicho esto, es posible que disfrute del código API y la experiencia general que ofrece el marco, especialmente si está creando API REST.

CherryPy

CherryPy es otro microframework que tiene como objetivo proporcionar una funcionalidad básica del marco y salir rápidamente del camino.

Si bien es comparable a otras microframeworks como Flask, CherryPy cuenta con alguna distinción:

  • Contiene un servidor multiproceso integrado (algo que permanece en la lista de deseos de Flask)
  • El servidor web (único) puede alojar múltiples aplicaciones!
  • Sirva su aplicación como una aplicación WSGI (para interactuar con otras aplicaciones WSGI) o un servidor HTTP simple (que funciona mejor)
  • Soporte de primera clase para perfiles y pruebas unitarias.
  • Se ejecuta en PyPy (para los verdaderos adictos al rendimiento), Jython e incluso Android

CherryPy hace todo esto, y luego lo habitual que esperarías de un framework web.

CherryPy es para ti?

Si está creando servicios RESTful principalmente, CherryPy es un competidor mucho más serio que Flask. Es un marco de una década que ha madurado muy bien y es adecuado tanto para aplicaciones pequeñas como grandes..

Sanic

El surgimiento de Node y su modelo de programación asincrónica dejó a muchas comunidades sintiéndose atrás, incluido Python. En respuesta, una ráfaga de frameworks web asíncronos ha aparecido en el radar, Sanic siendo uno de ellos.

Sanic está fuertemente inspirado en Flask, en la medida en que tomó prestados los decoradores de ruta, Blueprints y otros elementos básicos de línea de gancho y plomada. Y no se avergüenzan de admitirlo. Lo que Sanic trae a la mesa, si eres un fanático de Flask, es una verdadera E / S sin bloqueo para cumplir con los niveles de rendimiento de una aplicación Node. En otras palabras, Sanic es Frasco con soporte asíncrono / espera!

En comparación con CherryPy, Sanic tiene una ventaja de rendimiento increíble (¡solo piense en cómo le iría con Flask!). Echa un vistazo a los siguientes resultados probados por DataWeave:

Como puede ver, una vez que los números de concurrencia comienzan a superar los 50 por segundo, CherryPy prácticamente se ahoga y arroja una alta tasa de fallas.

Sanic es para ti?

Si bien las características de rendimiento de Sanic eliminan todo lo demás del agua, puede que no sea la mejor opción para su próximo proyecto. La razón principal es la falta de bibliotecas asincrónicas. La mayor parte de las herramientas y bibliotecas de Python existentes se escribieron para la versión CPython de un solo subproceso, sin previsión de alta concurrencia o operaciones asincrónicas. Si, por ejemplo, su ORM favorito no admite operaciones asincrónicas, el objetivo de usar Sanic queda derrotado.

Debido a estas razones de madurez y disponibilidad, no examinaremos más marcos asíncronos en Python.

Masonita

Me encontré con este marco hace un tiempo y pensé que era un paso en la dirección correcta. Desde entonces, se lanzó la versión 2.0, y siento que finalmente ha llegado el momento de dar Masonita un poco de amor.

En pocas palabras, Masonite es la versión Python de Laravel (un famoso marco PHP, en caso de que no lo supiera). ¿Por que importa? Importa porque Laravel se construyó sobre los principios de Ruby on Rails, y juntos estos dos marcos permiten a los desarrolladores que no son Ruby experimentar la “forma de Rails” de hacer las cosas..

Los desarrolladores de Laravel (y hasta cierto punto, Rails) se sentirán como en casa y estarán en funcionamiento literalmente en poco tiempo. Cuando probé Masonite (y presenté un problema o dos, ¡incluido un error!), Pude construir API REST con un pensamiento exactamente cero porque mi memoria muscular Laravel estaba haciendo todo.

Como un marco de pila completa incluido con baterías, Masonite trae varias cosas interesantes a la mesa:

  • ORM de estilo de grabación activa
  • Migraciones de bases de datos (que, a diferencia de Django, deben ser creadas por el desarrollador)
  • Un poderoso contenedor de IoC para inyección de dependencia
  • Propia CLI (llamada “artesanía”) para andamios y ejecución de tareas
  • Soporte de primera clase para pruebas unitarias

El mayor “rival” para Masonite es Django, ya que la comunidad está haciendo todo lo posible para comercializar el marco como fácil, encantador y el próximo gran avance. Si superará a Django es algo que el tiempo dirá (si me preguntas, tiene un tiro decente), pero para una discusión comparando los dos, ver aquí y aquí.

Es Masonite para ti?

Masonite todavía es un bebé en comparación con Django, por lo que no hay forma de recomendarlo a Django. Dicho esto, si te gusta la forma de hacer las cosas en Rails (o la manera de Laravel), agradecerías lo que Masonite tiene para ofrecer. Es ideal para construir prototipos rápidamente que necesitan todo preconfigurado y fácil de cambiar.

Conclusión

No hay escasez de marcos web de Python, grandes y pequeños. Si bien puede elegir casi cualquier cosa para un proyecto pequeño, una aplicación empresarial tiene demandas que no muchos de estos marcos pueden cumplir. Si me preguntas, para el desarrollo empresarial, Django (hasta cierto punto), Zope y TurboGears son lo que me viene a la mente. E incluso entre esos, me inclino por TurboGears.

Dicho esto, cualquier arquitecto que valga la pena puede tomar un microframework y desplegar su arquitectura. Y esto es más o menos lo que sucede en la práctica, lo que explica el éxito de Flask e ideas similares..

Si eres un novato, entonces este curso en línea sería útil aprender Python.

TAGS:

  • Pitón

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map