Nota perev.: Este artículo está destinado principalmente a aquellos que simplemente eligen un marco para el desarrollo web. Es poco probable que los desarrolladores experimentados de Django aprendan algo nuevo.
Django se describe como "un marco basado en la web para perfeccionistas con plazos". Fue creado para pasar de prototipos a servicios listos lo más rápido posible.
El marco ayudará a desarrollar una aplicación CRUD llave en mano. Django no tiene que reinventar la rueda. Funciona de forma inmediata y le permite centrarse en la lógica empresarial y los productos para la gente común.
Pros de Django
El principio de "todo incluido" ("Pilas incluidas")
La frase "todo incluido" significa que la mayoría de las herramientas para crear una aplicación son parte del marco y no vienen en bibliotecas separadas.
Django contiene una gran cantidad de funcionalidades para resolver la mayoría de las tareas de desarrollo web. Estas son algunas de las características de alto nivel de Django que deberá buscar por separado si prefiere un marco micro:
- ORM
- Migraciones de bases de datos
- Autenticación de usuario
- Panel de administración
- Formas
Estructura estandarizada
Django como marco define la estructura del proyecto. Ayuda a los desarrolladores a comprender dónde y cómo agregar nuevas funcionalidades.
Gracias a la misma estructura para todos los proyectos, es mucho más fácil encontrar soluciones preparadas u obtener ayuda de la comunidad. Un gran número de desarrolladores entusiastas ayudará a hacer frente a cualquier tarea mucho más rápido.
Django Apps
Las aplicaciones en Django le permiten dividir un proyecto en varias partes. Las aplicaciones se instalan agregando a settings.INSTALLED_APPS . Este enfoque facilita la integración de soluciones llave en mano.
Cientos de módulos y aplicaciones universales acelerarán en gran medida el desarrollo. Echa un vistazo a su lista en djangopackages.org .
Seguro por defecto
Django es seguro desde el primer momento e incluye mecanismos para prevenir ataques comunes como la inyección SQL (XSS) y la falsificación de solicitudes entre sitios (CSRF). Puede leer más sobre esto en el manual de seguridad oficial .
Marco REST para crear una API
Django REST Framework, a menudo abreviado como "DRF", es una biblioteca para construir API. Tiene una arquitectura modular y personalizable que funciona bien para crear API simples y complejas.
En DRF, las políticas de autenticación y permisos están disponibles de fábrica. Viene con clases base para operaciones CRUD y una utilidad incorporada para probar la API desarrollada.
Marco de API GraphQL
Las API REST grandes a menudo requieren una gran cantidad de solicitudes para obtener todos los datos necesarios. GraphQL es un lenguaje de consulta que facilita mucho el intercambio de datos relacionados. Lea más sobre los conceptos básicos de GraphQL en la documentación oficial .
Graphene-Django facilita agregar la funcionalidad adecuada a su proyecto. Los modelos, formularios, autenticación, políticas de permisos y otras funcionalidades de Django se pueden utilizar para crear la API GraphQL. La biblioteca también viene con una utilidad para probar el resultado.
Desventajas de Django
Orma de Django
Django ORM hoy es significativamente inferior a la última SQLAlchemy.
Django ORM se basa en la plantilla Active Record, que es peor que la plantilla Unidad de trabajo utilizada en SQLAlchemy. En la práctica, esto se expresa en el hecho de que en Django los modelos pueden "salvarse" a voluntad, y las transacciones están deshabilitadas por defecto. Puede leer más sobre esto en el artículo "Cosas que no me gustan en Django" .
Django se desarrolla lentamente
Django es un marco grande y monolítico. Esto permite a la comunidad desarrollar cientos de módulos y aplicaciones genéricos, pero ralentiza la velocidad de desarrollo de Django. Además, el marco debe admitir compatibilidad con versiones anteriores, por lo que se está desarrollando de manera relativamente lenta.
En pocas palabras: ¿debería elegir Django?
Aunque Django ORM no es tan flexible como SQLAlchemy, y un gran ecosistema de módulos y aplicaciones reutilizables ralentiza el desarrollo de la infraestructura, obviamente Django debería ser el primer candidato para el papel de un marco de Python.
Los marcos ligeros alternativos como Flask, aunque le permiten ser más libre que Django en el ecosistema y la configuración, pueden requerir tiempo adicional para buscar / crear bibliotecas y funcionalidades adicionales a largo plazo.
La estabilidad de Django y la comunidad a su alrededor ha crecido a un tamaño inimaginable desde su primer lanzamiento. La documentación oficial y los tutoriales sobre el marco son algunos de los mejores de su clase. Y con cada nueva versión de Django continúa creciendo oportunidades.