Django vs Flask: ¿Cuál Es La Diferencia?

Según la Encuesta de desarrolladores de Python de JetBrains de 2020 , Django y Flask son, con mucho, los dos marcos web de Python más populares. No sorprende que Flask haya superado a Django para ocupar el primer lugar, considerando que la industria del desarrollo web ha tenido una tendencia hacia marcos más pequeños, microservicios y plataformas "sin servidor" durante los últimos cinco años más o menos.

¿O tal vez esto tiene menos que ver con las tendencias de la industria y más con los usuarios de JetBrains?

Django y Flask tienen comunidades maduras, son ampliamente compatibles y populares, y ofrecen enfoques productivos para el desarrollo de aplicaciones, lo que le permite concentrar su tiempo y energía en las partes únicas de su aplicación en lugar del andamiaje central. Al final, ambos marcos se utilizan para desarrollar aplicaciones web. La diferencia clave radica en cómo logran este objetivo. Piense en Django como un automóvil y en Flask como una bicicleta. Ambos pueden llevarte del punto A al punto B, pero sus enfoques son bastante diferentes. Cada uno tiene sus propios mejores casos de uso. Lo mismo ocurre con Django y Flask.

En este artículo, veremos los mejores casos de uso de Django y Flask junto con lo que los hace únicos, desde un punto de vista educativo y de desarrollo.

Filosofía

Django y Flask son marcos web gratuitos, de código abierto y basados ​​en Python, diseñados para crear aplicaciones web.

En comparación con Flask, Django adopta la estabilidad, así como un enfoque de "baterías incluidas" en el que se proporcionan una serie de baterías (es decir, herramientas, patrones, características y funcionalidad) listas para usar. En términos de estabilidad, Django generalmente tiene ciclos de lanzamiento más largos y rígidos. Por lo tanto, los lanzamientos de Django vienen con menos funciones nuevas y brillantes, pero tienen una mayor compatibilidad con versiones anteriores.

Basado en Werkzeug , Flask maneja bien el andamiaje central. Listo para usar, obtiene enrutamiento de URL, manejo de solicitudes y errores, plantillas, cookies, soporte para pruebas unitarias, un depurador y un servidor de desarrollo. Dado que la mayoría de las aplicaciones web necesitan un poco más (como un ORM, autenticación y autorización, por nombrar algunas), puede decidir cómo desea construir su aplicación. Ya sea que aproveche las extensiones de terceros o personalice el código usted mismo, Flask se mantiene fuera de su camino para esto. Es mucho más flexible que Django. También hay mucho menos área de superficie abierta para ataques y menos código para revisar si necesita abrir el capó y ver el código fuente.

Le recomiendo que lea y revise el código fuente de Flask . Limpio, claro y conciso: es un excelente ejemplo de código Python bien estructurado.

Características

A continuación, comparemos Flask y Django en función de las funciones que se incluyen con el marco central.

Base de datos

Django incluye un ORM simple pero potente (Mapeo relacional de objetos) que admite varias bases de datos relacionales listas para usar: SQLite, PostgreSQL, MySQL, MariaDB y Oracle. El ORM brinda soporte para generar y administrar migraciones de bases de datos . También es bastante fácil crear formularios, vistas y plantillas basadas en los modelos de datos, lo cual es perfecto para su aplicación web CRUD típica. Si bien tiene algunas deficiencias , es lo suficientemente bueno para la mayoría de las aplicaciones web.

Flask no hace suposiciones sobre cómo se almacenan los datos, pero hay muchas bibliotecas y extensiones disponibles para ayudar con eso:

UsarBibliotecaExtensión
ORMSQLAlquimiaFlask-SQLAlchemy
Herramienta de migración para SQLAlchemyAlambiqueMatraz-Alambique
ORM, MigracionespipíFrasco-Peewee
ORMPonyORMFrasco-Pony
ODM (asignador de documentos de objetos)pymongoMatraz-PyMongo
ODMMongoMotorMatraz-MongoMotor

En conclusión, si está utilizando una base de datos relacional, Django hace que sea mucho más fácil comenzar, ya que tiene una herramienta de gestión de migración y ORM integrada. Sin embargo, si está usando una base de datos no relacional o le gustaría usar un ORM diferente como SQLAlchemy, Django luchará contra usted en casi cada paso del camino. Además, lo más probable es que no pueda aprovechar el administrador de Django, los formularios de modelos o los serializadores de modelos DRF .

Flask se mantiene fuera de su camino, lo que le brinda la libertad de elegir el ORM (u ODM) que mejor se adapte a su aplicación. Sin embargo, la libertad tiene un precio: hay una curva de aprendizaje más alta y más espacio para el error, ya que usted mismo está administrando estas piezas.

Cuanto más haga por su cuenta, más errores cometerá, especialmente a medida que las cosas escalan.

Autorización

Dado que la mayoría de las aplicaciones web requieren autenticación ( ¿quién es usted? ) y autorización ( ¿qué puede hacer? ), Django proporciona esta funcionalidad junto con la administración de cuentas y soporte para sesiones (a través del modelo de usuario ) listas para usar. Flask brinda soporte para sesiones basadas en cookies, pero deberá recurrir a la red de extensión para la administración, autenticación y autorización de la cuenta.

UsarExtensión
Gestión de cuentas, AutenticaciónFlask-Iniciar sesión
AutorizaciónMatraz-Principal
Gestión de cuentas, Autenticación, AutorizaciónMatraz-Seguridad

Administración

Django viene con un panel de administración funcional , que es una aplicación web que proporciona una interfaz de usuario para administrar datos en función de sus modelos. Esta es otra área donde Django brilla. Le permite realizar rápidamente operaciones CRUD en sus modelos a medida que crea una aplicación sin escribir ningún código adicional. Nuevamente, Flask no incluye nada como esto, pero la extensión Flask-Admin ofrece todas las mismas funciones y mucho más :

Django hace muchas cosas automáticamente.

La filosofía del matraz es ligeramente diferente: lo explícito es mejor que lo implícito. Si algo debe ser inicializado, debe ser inicializado por el desarrollador.

Flask-Admin sigue esta convención. Depende de usted, como desarrollador, decirle a Flask-Admin qué debe mostrarse y cómo.

A veces, esto requerirá escribir un poco de código repetitivo, pero valdrá la pena en el futuro, especialmente si tiene que implementar alguna lógica personalizada.

Flask-Admin admite varios backends de bases de datos , como SQLAlchemy, Peewee, MongoEngine, por nombrar algunos. También puede agregar sus propios backends . También se puede usar con (o sin) las populares extensiones de autenticación de Flask:

  1. Flask-Iniciar sesión y Flask-Principal
  2. Matraz-Seguridad

Enrutamiento y vistas

Ambos marcos le permiten asignar direcciones URL a vistas y admiten funciones y vistas basadas en clases.

Django

Cuando una solicitud coincide con un patrón de URL, el objeto de la solicitud, que contiene la información de la solicitud HTTP, se pasa a una vista y luego se invoca esa vista. Cada vez que necesite acceder al objeto de solicitud, debe pasarlo explícitamente .

Las URL y las vistas se definen en archivos separados: urls.py y views.py , respectivamente.

  1. Enrutamiento
  2. Puntos de vista
  3. Vistas basadas en clases
  4. Solicitar contexto
  5. Cómo Django procesa una solicitud

Matraz

En esencia, Flask usa Werkzeug , que proporciona enrutamiento de URL y manejo de solicitudes/respuestas.

El objeto de solicitud es global en Flask, por lo que puede acceder a él mucho más fácilmente (siempre que lo importe). Las URL generalmente se definen junto con la vista (a través de un decorador ), pero se pueden separar en una ubicación centralizada similar al patrón Django.

  1. Enrutamiento
  2. Puntos de vista
  3. Vistas basadas en clases
  4. Solicitar contexto

¿Tomó nota de la diferencia en cómo Django y Flask manejan el objeto de solicitud? En general, Flask tiende a ser más explícito con las cosas, pero en este caso es todo lo contrario: Django te obliga a pasar explícitamente el objeto de solicitud mientras que el objeto de solicitud de Flask está mágicamente disponible. Esta es una de las partes difíciles con Flask, especialmente para aquellos que son nuevos en el marco de un marco de estilo similar como Express.js .

formularios

Los formularios, otra parte esencial de la mayoría de las aplicaciones web, vienen empaquetados con Django. Esto incluye el manejo de entradas y la validación del lado del servidor y del cliente, junto con el manejo de varios problemas de seguridad, como la falsificación de solicitudes entre sitios (CSRF), las secuencias de comandos entre sitios (XSS) y la inyección de SQL. Se pueden crear a partir de los modelos de datos (a través de ModelForms ) e integrarse bien con el panel de administración.

Flask no admite formularios de forma predeterminada, pero la poderosa extensión Flask-WTF integra Flask con WTForms . WTForms-Alchemy se puede usar para crear automáticamente formularios basados ​​en modelos de SQLAlchemy, cerrando la brecha entre los formularios y el ORM de manera muy similar a ModelForm de Django.

Componentes reutilizables

Con respecto a la estructura del proyecto, a medida que sus aplicaciones se vuelven más complicadas, ambos marcos le facilitan dividirlas al agrupar archivos relacionados que exhiben una funcionalidad similar. Por lo tanto, podría, por ejemplo, agrupar todas las funciones relacionadas con el usuario, que pueden incluir rutas, vistas, formularios, plantillas y activos estáticos.

Django tiene un concepto de aplicación , mientras que Flask tiene planos .

Las aplicaciones de Django son más complejas que los planos de Flask, pero tienden a ser más fáciles de usar y reutilizar una vez configuradas. Además, debido a la convención urls.py , models.py y views.py -- ¡estructura de proyecto consistente! -- puede agregar nuevos desarrolladores a un proyecto de Django con bastante facilidad. Mientras tanto, los planos son más simples y fáciles de poner en marcha.

Plantillas y Archivos Estáticos

Los motores de plantillas le permiten inyectar información dinámicamente en una página HTML desde el backend. Flask usa Jinja2 por defecto mientras que Django tiene su propio motor de plantillas . Son bastante similares en términos de sintaxis y conjuntos de características. También puedes usar Jinja2 con Django .

Ambos marcos también tienen soporte para el manejo de archivos estáticos:

  1. Django
  2. Matraz

Django viene con un práctico comando de administración para recopilar todos los archivos estáticos y colocarlos en una ubicación central para implementaciones de producción.

Vistas asíncronas

Django admite controladores asíncronos con la introducción de Django 3.1 . Una vista se puede hacer asíncrona usando la palabra clave async. El soporte asíncrono también está disponible para middlewares. Si necesita realizar una llamada síncrona dentro de una vista asíncrona, puede usar la función/decorador sync_to_async . Esto se puede usar para interactuar con otras partes de Django que aún no admiten async, como el ORM y la capa de caché.

Los servidores web asíncronos, incluidos, entre otros, Daphne , Hypercorn , Uvicorn , deben usarse con Django para aprovechar todo el poder de las vistas asíncronas.

Flask 2.0 agregó soporte incorporado para rutas/vistas asincrónicas , controladores de errores, funciones de solicitud antes y después, ¡y devoluciones de llamada de desmontaje!

Para obtener más información sobre las vistas asíncronas en Django y Flask, consulte los artículos Vistas asíncronas en Django 3.1 y Asíncronas en Flask 2.0 , respectivamente.

Pruebas

Ambos marcos tienen soporte incorporado para pruebas.

Para las pruebas unitarias, ambos aprovechan el marco de pruebas unitarias de Python. Cada uno de ellos también admite un cliente de prueba al que puede enviar solicitudes y luego inspeccionar y validar partes de la respuesta.

Consulte Probar aplicaciones Flask y Probar en Django respectivamente para obtener más información.

En términos de extensiones, si le gusta cómo funciona el marco unittest, consulte Flask-Testing . Por otro lado, la extensión pytest-flask agrega compatibilidad con pytest a Flask. Para Django, echa un vistazo a pytest-django .

Otras características

Hay varias otras características no mencionadas que vienen con Django pero no con Flask:

DjangoExtensión de matraz/recurso
Fuentes Atom y RSSAtom RSS Feed Generator con Python y Flask
Marco de almacenamiento en cachéAlmacenamiento en caché de frascos
Herramienta de arranqueFrasco-AppBuilder , CLI
Mapas del sitioFlask-Mapa del sitio

Seguridad

Como se mencionó, Django tiene protección incorporada contra una serie de vectores de ataque comunes como CSRF, XSS e inyección de SQL. Estas medidas de seguridad ayudan a proteger su código contra vulnerabilidades. El equipo de desarrollo de Django también divulga de manera proactiva y corrige rápidamente las vulnerabilidades de seguridad conocidas. Flask, por otro lado, tiene una base de código mucho más pequeña, por lo que hay menos área de superficie abierta al ataque. Sin embargo, deberá abordar y corregir las vulnerabilidades de seguridad en el código de su aplicación artesanal a medida que surjan.

Al final del día, usted está tan seguro como su eslabón más débil. Dado que Flask depende mucho más de las extensiones de terceros, las aplicaciones solo serán tan seguras como la extensión menos segura. Esto ejerce más presión sobre su equipo de desarrollo para mantener la seguridad al evaluar y monitorear bibliotecas y extensiones de terceros. Mantenerlos actualizados es lo más importante (y a menudo lo más difícil) aquí, ya que cada extensión tiene su propio equipo de desarrollo, documentación y ciclos de lanzamiento. En algunos casos, es posible que solo haya uno o dos desarrolladores que mantengan una extensión en particular. Cuando evalúe una extensión sobre otra, asegúrese de revisar los problemas de GitHub para ver cuánto tardan los mantenedores en responder a los problemas críticos.

Esto no significa que Django sea inherentemente más seguro que Flask; simplemente es más fácil asegurarlo por adelantado y mantenerlo durante la vida útil de su aplicación.

Recursos:

  1. Consideraciones de seguridad de matraces
  2. Seguridad en Django
  3. Protección de las aplicaciones web de Flask
  4. Proteja su aplicación web Django de las amenazas de seguridad

Flexibilidad

Flask, por diseño, es mucho más flexible que Django, y está destinado a ser ampliado . Debido a esto, Flask generalmente tarda más en configurarse, ya que tendrá que agregar las extensiones adecuadas en función de las necesidades comerciales, por ejemplo, ORM, permisos, autenticación, etc. Este costo inicial da como resultado una mayor flexibilidad en el futuro para las aplicaciones que no se ajustan al modelo estándar de Django.

Eso sí, ten cuidado con esto. La flexibilidad brinda a los desarrolladores más libertad y control, pero esto puede ralentizar el desarrollo, especialmente para equipos más grandes, ya que se deben tomar muchas más decisiones.

A los desarrolladores les encanta tener la libertad de hacer lo que quieran para resolver un problema. Dado que Flask no proporciona muchas restricciones u opiniones sobre cómo se desarrolla una aplicación, los desarrolladores pueden presentar las suyas propias. El resultado es que dos aplicaciones de Flask que son funcionalmente intercambiables en comparación una al lado de la otra tendrán una estructura diferente. Por lo tanto, necesita un equipo más maduro que comprenda los patrones de diseño, la escalabilidad y la importancia de las pruebas para manejar esa flexibilidad.

Educación

Aprenda patrones, no lenguajes o marcos.

Independientemente de si su objetivo final es aprender Flask o Django, comience con Flask. Es una gran herramienta para aprender los fundamentos del desarrollo web y las mejores prácticas junto con las piezas centrales de un marco web que son comunes a casi todos los marcos.

  1. Flask es más ligero y mucho más explícito que Django. Por lo tanto, si es nuevo en el desarrollo web pero no en Python, le resultará mucho más fácil desarrollar en Flask, ya que se sentirá como si estuviera trabajando con Python estándar para definir controladores de solicitudes y vistas y demás.
  2. Django tiene muchos gastos generales. Desde la estructura del proyecto hasta la configuración y la instalación de una serie de tuercas y tornillos de los que no sabe nada, se perderá y terminará aprendiendo más sobre Django que sobre los fundamentos reales.

En casi todos los casos, se recomienda aprender Flask antes que Django. La única vez que debe desviarse de eso es cuando solo necesita obtener una aplicación rápidamente para satisfacer a alguna parte interesada externa. Solo asegúrese de volver a Flask para aprender los conceptos básicos en algún momento.

Fuente abierta

Django y Flask tienen fuertes comunidades de código abierto.

Estadísticas de GitHub al 24 de febrero de 2022:

MétricoDjangoMatraz
Primera confirmación20052010
Colaboradores2,188646
Usuarios*849,772959,728
Vigilantes2,2932.191
Estrellas62,55458,086

*número de veces que la dependencia es utilizada por otros repositorios

Para obtener más información, revise la comparación de código abierto de Django y Flask de Open Hub .

Preguntas de desbordamiento de pila a partir del 24 de febrero de 2022:

--

¿Qué podemos concluir aquí?

  1. Ambas comunidades son muy activas.
  2. Django es más antiguo y tiene muchos más colaboradores.
  3. Flask es utilizado por más proyectos
  4. Hay más contenido disponible en Django

Para comparar realmente estos marcos (o ecosistemas) desde una perspectiva de código abierto, tendría que tener en cuenta Jinja2 y Werkzeug junto con algunas de las bibliotecas y extensiones principales de Flask como SQLAlchemy / Flask-SQLAlchemy, Alembic / Flask-Alembic y WTForms. / Frasco-WTF.

Dado que la funcionalidad central de Flask se distribuye en múltiples proyectos, es más difícil para la comunidad crear y desarrollar la sinergia necesaria entre proyectos para mantener el impulso. Por ejemplo, Flask no tiene una única extensión de facto para crear API RESTful; hay (posiblemente) cuatro extensiones populares a partir de febrero de 2022:

  1. Conexión
  2. Matraz-RESTful
  3. Matraz con clase
  4. Matraz-RESTX

Además, para encontrar estas extensiones, debe tener algunas habilidades de recuperación de información bastante sólidas. Tendrá que filtrar todas las extensiones no mantenidas y los artículos que hacen referencia a ellas. De hecho, hay tantos proyectos de extensión diferentes para las API RESTful que a menudo es más fácil implementar el suyo propio y abrirlo. En ese punto, probablemente lo mantendrá por un tiempo, pero eventualmente se convertirá en parte del problema en lugar de una solución.

Notas:

  1. Esto no es un golpe contra la comunidad de Flask. Es un problema en el código abierto en su conjunto, especialmente con marcos micro web en los que a menudo tiene que improvisar una serie de proyectos mantenidos por diferentes desarrolladores en diferentes ciclos de lanzamiento con diferentes niveles de calidad de la documentación. Dirígete a la comunidad de JavaScript si quieres ver esto al extremo.
  2. La comunidad de Django no es inmune a esto de ninguna manera. Simplemente es un problema menor, ya que maneja casi todo lo necesario para crear y proteger una aplicación web estándar lista para usar.

Para obtener más información sobre esta revisión, consulte la sección "Impulso de código abierto" de Django vs Flask: la perspectiva de un profesional :

Al no tener un frente unido, la oportunidad de esfuerzos sinérgicos que unen las extensiones no se materializa, creando extensiones que son porosas. Esto deja a los desarrolladores para completar los espacios en blanco para la funcionalidad integral que ya estaría funcionando si hubieran elegido una herramienta diferente para el trabajo.

Contratación

A pesar de la popularidad de Python y Django, es difícil contratar desarrolladores de Django. Son difíciles de encontrar y retener debido a que tienen una gran demanda y, por lo general, son más del lado senior, por lo que pueden ser bastante costosos. Tampoco hay muchos aspirantes a desarrolladores web nuevos que aprendan Django, ya que la industria se centra más en marcos más pequeños y el marco en sí es difícil de aprender.

  1. Tendencias de la industria : debido al auge de los microservicios, los aspirantes a desarrolladores web generalmente están aprendiendo los marcos más pequeños y livianos. Además, cada vez más desarrolladores web eligen JavaScript, en lugar de Python o Ruby, como su primer idioma debido a la popularidad de los marcos de JavaScript del lado del cliente: Angular, React y Vue.
  2. Difícil de aprender : hay una sorprendente falta de tutoriales de Django para principiantes. Incluso la documentación de Django, que es increíblemente completa, y el infame tutorial de encuestas no están diseñados para principiantes.

Flask también puede ser difícil de contratar, pero tiende a ser más fácil que Django, ya que es un marco liviano con menos capas de abstracción. Un desarrollador sólido con experiencia en un marco similar en un lenguaje diferente, como Express.js o Sinatra , puede ponerse al día con una aplicación Flask con bastante rapidez. Al contratar a dichos desarrolladores, centre su búsqueda en aquellos que entienden los patrones de diseño y los principios fundamentales del software en lugar de los lenguajes o marcos que conocen.

Casos de uso

Asegúrese de tener en cuenta las necesidades individuales de su proyecto cuando decida un marco. Dado que Django proporciona muchas campanas y silbatos, debe aprovecharlos. Si tiene fuertes desacuerdos con la forma en que Django maneja algo, es posible que desee optar por Flask. Lo mismo puede decirse si no va a aprovechar la estructura y las herramientas que proporciona Django.

Veamos algunos ejemplos.

Base de datos

Si su aplicación usa SQLite, PostgreSQL, MySQL, MariaDB u Oracle, debería echarle un vistazo a Django. Por otro lado, si está utilizando NoSQL o ninguna base de datos, entonces Flask es una opción sólida.

Tamaño del proyecto y vida útil prevista

Flask es mejor para proyectos más pequeños y menos complicados que tienen alcances bien definidos y una vida útil prevista más corta.

Dado que Django fuerza una estructura de aplicación consistente independientemente del tamaño del proyecto, casi todos los proyectos de Django tienen una estructura similar. Por lo tanto, Django maneja mejor los proyectos más grandes (con equipos más grandes) que tienen una vida útil más larga y un gran potencial de crecimiento, ya que lo más probable es que tenga que incorporar nuevos desarrolladores de vez en cuando.

tipo de aplicacion

¿Qué tipo de aplicación estás construyendo?

Django se destaca en la creación de aplicaciones web completas con plantillas del lado del servidor. Si solo está desarrollando un sitio web estático o un servicio web RESTful que alimenta su SPA o aplicación móvil, Flask es una opción sólida. Django junto con Django REST Framework también funciona bien en este último caso.

API RESTful

¿Estás diseñando una API RESTful?

Django REST Framework (DRF), uno de los paquetes Django de terceros más populares , es un marco utilizado para exponer modelos Django a través de una interfaz RESTful. Viene con todo lo que necesita (vistas, serializadores, validación, autenticación) y más (API navegable, control de versiones, almacenamiento en caché) para crear API de forma rápida y sencilla. Dicho esto, nuevamente, tenga en cuenta que, al igual que el ORM de Django, está diseñado para combinarse con una base de datos relacional.

Flask también tiene una serie de excelentes extensiones:

UsarExtensiones
Puntos de vistaFlask-RESTful , Flask-Classful , Flask-RESTX
Publicación por entregasFrasco-Marshmallow
AutorizaciónMatraz-JWT , Matraz-JWT-Extendido

¡ Asegúrese de revisar también Connexion , que combina la funcionalidad de vista, serialización y autenticación en un solo paquete!

--

Revise esta respuesta de Stack Exchange para conocer otros requisitos que quizás desee tener en cuenta al elegir un marco.

Actuación

Flask funciona un poco mejor ya que es más pequeño y tiene menos capas. Sin embargo, la diferencia aquí es insignificante, especialmente cuando se tiene en cuenta la E/S.

Conclusión

Entonces, ¿qué marco debería usar? Como siempre, depende. La elección de optar por un marco, lenguaje o herramienta en lugar de otro depende casi por completo del contexto y el problema en cuestión.

Django tiene todas las funciones, por lo que requiere que usted o su equipo tomen menos decisiones. Probablemente puedas moverte más rápido de esa manera. Sin embargo, si no está de acuerdo con una de las elecciones que Django hace por usted o si tiene requisitos de aplicación únicos que limitan la cantidad de funciones que puede aprovechar, es posible que desee buscar Flask.

Siempre va a haber compensaciones y compromisos.

Piense en las limitaciones del proyecto, como el tiempo, el conocimiento y el presupuesto. ¿Cuáles son algunas de las características clave de su aplicación? ¿En qué no puedes comprometerte? ¿Necesita moverse rápidamente? ¿Tu aplicación requiere mucha flexibilidad? Trate de dejar de lado sus opiniones al responder estas preguntas.

Al final, ambos marcos han reducido la barrera de entrada para la creación de aplicaciones web, haciéndolas mucho más fáciles y rápidas de desarrollar.

Fuente:  https://testdriven.io

#django #flask 

What is GEEK

Buddha Community

Django vs Flask: ¿Cuál Es La Diferencia?
Ahebwe  Oscar

Ahebwe Oscar

1620177818

Django admin full Customization step by step

Welcome to my blog , hey everyone in this article you learn how to customize the Django app and view in the article you will know how to register  and unregister  models from the admin view how to add filtering how to add a custom input field, and a button that triggers an action on all objects and even how to change the look of your app and page using the Django suit package let’s get started.

Database

Custom Titles of Django Admin

Exclude in Django Admin

Fields in Django Admin

#django #create super user django #customize django admin dashboard #django admin #django admin custom field display #django admin customization #django admin full customization #django admin interface #django admin register all models #django customization

Django vs Flask: Difference Between Django and Flask [Which is Better?]

Introduction

Python is now a widely-used programming language for server-side web development. It offers benefits such as cleaner code and flexibility, and as a developer, you have the option to use its exciting web frameworks. This way, you can bring all your app ideas to life very fast.

While developing web applications in Python, you will come across two popular web frameworks – Django and Flask. We will learn more about them in this article.

Let us understand their basics first.

#full stack development #difference between #django #django vs flask #flask

Ahebwe  Oscar

Ahebwe Oscar

1620215760

Django vs Flask: Difference Between Django and Flask [Which is Better?]

Introduction

Python is now a widely-used programming language for server-side web development. It offers benefits such as cleaner code and flexibility, and as a developer, you have the option to use its exciting web frameworks. This way, you can bring all your app ideas to life very fast.

While developing web applications in Python, you will come across two popular web frameworks – Django and Flask. We will learn more about them in this article.

Let us understand their basics first.

Read: Top 12 Fascinating Python Applications in Real-World

What is Django?

Django is a web framework coded in Python. It is open-sourced and was developed for programmers to create applications and websites faster. The framework is maintained by the Django Software Foundation. Django offers flexibility, scalability, and reliability to developers. Learn more about the Django applications.

It is very secure owing to its user authentication system that makes handling user accounts and passwords easy.

Being open-source, you can download the source code easily. It has a powerful community that constantly enhances the framework by adding plug-ins and updates.

#full stack development #difference between #django #django vs flask #flask

Django vs Flask: ¿Cuál Es La Diferencia?

Según la Encuesta de desarrolladores de Python de JetBrains de 2020 , Django y Flask son, con mucho, los dos marcos web de Python más populares. No sorprende que Flask haya superado a Django para ocupar el primer lugar, considerando que la industria del desarrollo web ha tenido una tendencia hacia marcos más pequeños, microservicios y plataformas "sin servidor" durante los últimos cinco años más o menos.

¿O tal vez esto tiene menos que ver con las tendencias de la industria y más con los usuarios de JetBrains?

Django y Flask tienen comunidades maduras, son ampliamente compatibles y populares, y ofrecen enfoques productivos para el desarrollo de aplicaciones, lo que le permite concentrar su tiempo y energía en las partes únicas de su aplicación en lugar del andamiaje central. Al final, ambos marcos se utilizan para desarrollar aplicaciones web. La diferencia clave radica en cómo logran este objetivo. Piense en Django como un automóvil y en Flask como una bicicleta. Ambos pueden llevarte del punto A al punto B, pero sus enfoques son bastante diferentes. Cada uno tiene sus propios mejores casos de uso. Lo mismo ocurre con Django y Flask.

En este artículo, veremos los mejores casos de uso de Django y Flask junto con lo que los hace únicos, desde un punto de vista educativo y de desarrollo.

Filosofía

Django y Flask son marcos web gratuitos, de código abierto y basados ​​en Python, diseñados para crear aplicaciones web.

En comparación con Flask, Django adopta la estabilidad, así como un enfoque de "baterías incluidas" en el que se proporcionan una serie de baterías (es decir, herramientas, patrones, características y funcionalidad) listas para usar. En términos de estabilidad, Django generalmente tiene ciclos de lanzamiento más largos y rígidos. Por lo tanto, los lanzamientos de Django vienen con menos funciones nuevas y brillantes, pero tienen una mayor compatibilidad con versiones anteriores.

Basado en Werkzeug , Flask maneja bien el andamiaje central. Listo para usar, obtiene enrutamiento de URL, manejo de solicitudes y errores, plantillas, cookies, soporte para pruebas unitarias, un depurador y un servidor de desarrollo. Dado que la mayoría de las aplicaciones web necesitan un poco más (como un ORM, autenticación y autorización, por nombrar algunas), puede decidir cómo desea construir su aplicación. Ya sea que aproveche las extensiones de terceros o personalice el código usted mismo, Flask se mantiene fuera de su camino para esto. Es mucho más flexible que Django. También hay mucho menos área de superficie abierta para ataques y menos código para revisar si necesita abrir el capó y ver el código fuente.

Le recomiendo que lea y revise el código fuente de Flask . Limpio, claro y conciso: es un excelente ejemplo de código Python bien estructurado.

Características

A continuación, comparemos Flask y Django en función de las funciones que se incluyen con el marco central.

Base de datos

Django incluye un ORM simple pero potente (Mapeo relacional de objetos) que admite varias bases de datos relacionales listas para usar: SQLite, PostgreSQL, MySQL, MariaDB y Oracle. El ORM brinda soporte para generar y administrar migraciones de bases de datos . También es bastante fácil crear formularios, vistas y plantillas basadas en los modelos de datos, lo cual es perfecto para su aplicación web CRUD típica. Si bien tiene algunas deficiencias , es lo suficientemente bueno para la mayoría de las aplicaciones web.

Flask no hace suposiciones sobre cómo se almacenan los datos, pero hay muchas bibliotecas y extensiones disponibles para ayudar con eso:

UsarBibliotecaExtensión
ORMSQLAlquimiaFlask-SQLAlchemy
Herramienta de migración para SQLAlchemyAlambiqueMatraz-Alambique
ORM, MigracionespipíFrasco-Peewee
ORMPonyORMFrasco-Pony
ODM (asignador de documentos de objetos)pymongoMatraz-PyMongo
ODMMongoMotorMatraz-MongoMotor

En conclusión, si está utilizando una base de datos relacional, Django hace que sea mucho más fácil comenzar, ya que tiene una herramienta de gestión de migración y ORM integrada. Sin embargo, si está usando una base de datos no relacional o le gustaría usar un ORM diferente como SQLAlchemy, Django luchará contra usted en casi cada paso del camino. Además, lo más probable es que no pueda aprovechar el administrador de Django, los formularios de modelos o los serializadores de modelos DRF .

Flask se mantiene fuera de su camino, lo que le brinda la libertad de elegir el ORM (u ODM) que mejor se adapte a su aplicación. Sin embargo, la libertad tiene un precio: hay una curva de aprendizaje más alta y más espacio para el error, ya que usted mismo está administrando estas piezas.

Cuanto más haga por su cuenta, más errores cometerá, especialmente a medida que las cosas escalan.

Autorización

Dado que la mayoría de las aplicaciones web requieren autenticación ( ¿quién es usted? ) y autorización ( ¿qué puede hacer? ), Django proporciona esta funcionalidad junto con la administración de cuentas y soporte para sesiones (a través del modelo de usuario ) listas para usar. Flask brinda soporte para sesiones basadas en cookies, pero deberá recurrir a la red de extensión para la administración, autenticación y autorización de la cuenta.

UsarExtensión
Gestión de cuentas, AutenticaciónFlask-Iniciar sesión
AutorizaciónMatraz-Principal
Gestión de cuentas, Autenticación, AutorizaciónMatraz-Seguridad

Administración

Django viene con un panel de administración funcional , que es una aplicación web que proporciona una interfaz de usuario para administrar datos en función de sus modelos. Esta es otra área donde Django brilla. Le permite realizar rápidamente operaciones CRUD en sus modelos a medida que crea una aplicación sin escribir ningún código adicional. Nuevamente, Flask no incluye nada como esto, pero la extensión Flask-Admin ofrece todas las mismas funciones y mucho más :

Django hace muchas cosas automáticamente.

La filosofía del matraz es ligeramente diferente: lo explícito es mejor que lo implícito. Si algo debe ser inicializado, debe ser inicializado por el desarrollador.

Flask-Admin sigue esta convención. Depende de usted, como desarrollador, decirle a Flask-Admin qué debe mostrarse y cómo.

A veces, esto requerirá escribir un poco de código repetitivo, pero valdrá la pena en el futuro, especialmente si tiene que implementar alguna lógica personalizada.

Flask-Admin admite varios backends de bases de datos , como SQLAlchemy, Peewee, MongoEngine, por nombrar algunos. También puede agregar sus propios backends . También se puede usar con (o sin) las populares extensiones de autenticación de Flask:

  1. Flask-Iniciar sesión y Flask-Principal
  2. Matraz-Seguridad

Enrutamiento y vistas

Ambos marcos le permiten asignar direcciones URL a vistas y admiten funciones y vistas basadas en clases.

Django

Cuando una solicitud coincide con un patrón de URL, el objeto de la solicitud, que contiene la información de la solicitud HTTP, se pasa a una vista y luego se invoca esa vista. Cada vez que necesite acceder al objeto de solicitud, debe pasarlo explícitamente .

Las URL y las vistas se definen en archivos separados: urls.py y views.py , respectivamente.

  1. Enrutamiento
  2. Puntos de vista
  3. Vistas basadas en clases
  4. Solicitar contexto
  5. Cómo Django procesa una solicitud

Matraz

En esencia, Flask usa Werkzeug , que proporciona enrutamiento de URL y manejo de solicitudes/respuestas.

El objeto de solicitud es global en Flask, por lo que puede acceder a él mucho más fácilmente (siempre que lo importe). Las URL generalmente se definen junto con la vista (a través de un decorador ), pero se pueden separar en una ubicación centralizada similar al patrón Django.

  1. Enrutamiento
  2. Puntos de vista
  3. Vistas basadas en clases
  4. Solicitar contexto

¿Tomó nota de la diferencia en cómo Django y Flask manejan el objeto de solicitud? En general, Flask tiende a ser más explícito con las cosas, pero en este caso es todo lo contrario: Django te obliga a pasar explícitamente el objeto de solicitud mientras que el objeto de solicitud de Flask está mágicamente disponible. Esta es una de las partes difíciles con Flask, especialmente para aquellos que son nuevos en el marco de un marco de estilo similar como Express.js .

formularios

Los formularios, otra parte esencial de la mayoría de las aplicaciones web, vienen empaquetados con Django. Esto incluye el manejo de entradas y la validación del lado del servidor y del cliente, junto con el manejo de varios problemas de seguridad, como la falsificación de solicitudes entre sitios (CSRF), las secuencias de comandos entre sitios (XSS) y la inyección de SQL. Se pueden crear a partir de los modelos de datos (a través de ModelForms ) e integrarse bien con el panel de administración.

Flask no admite formularios de forma predeterminada, pero la poderosa extensión Flask-WTF integra Flask con WTForms . WTForms-Alchemy se puede usar para crear automáticamente formularios basados ​​en modelos de SQLAlchemy, cerrando la brecha entre los formularios y el ORM de manera muy similar a ModelForm de Django.

Componentes reutilizables

Con respecto a la estructura del proyecto, a medida que sus aplicaciones se vuelven más complicadas, ambos marcos le facilitan dividirlas al agrupar archivos relacionados que exhiben una funcionalidad similar. Por lo tanto, podría, por ejemplo, agrupar todas las funciones relacionadas con el usuario, que pueden incluir rutas, vistas, formularios, plantillas y activos estáticos.

Django tiene un concepto de aplicación , mientras que Flask tiene planos .

Las aplicaciones de Django son más complejas que los planos de Flask, pero tienden a ser más fáciles de usar y reutilizar una vez configuradas. Además, debido a la convención urls.py , models.py y views.py -- ¡estructura de proyecto consistente! -- puede agregar nuevos desarrolladores a un proyecto de Django con bastante facilidad. Mientras tanto, los planos son más simples y fáciles de poner en marcha.

Plantillas y Archivos Estáticos

Los motores de plantillas le permiten inyectar información dinámicamente en una página HTML desde el backend. Flask usa Jinja2 por defecto mientras que Django tiene su propio motor de plantillas . Son bastante similares en términos de sintaxis y conjuntos de características. También puedes usar Jinja2 con Django .

Ambos marcos también tienen soporte para el manejo de archivos estáticos:

  1. Django
  2. Matraz

Django viene con un práctico comando de administración para recopilar todos los archivos estáticos y colocarlos en una ubicación central para implementaciones de producción.

Vistas asíncronas

Django admite controladores asíncronos con la introducción de Django 3.1 . Una vista se puede hacer asíncrona usando la palabra clave async. El soporte asíncrono también está disponible para middlewares. Si necesita realizar una llamada síncrona dentro de una vista asíncrona, puede usar la función/decorador sync_to_async . Esto se puede usar para interactuar con otras partes de Django que aún no admiten async, como el ORM y la capa de caché.

Los servidores web asíncronos, incluidos, entre otros, Daphne , Hypercorn , Uvicorn , deben usarse con Django para aprovechar todo el poder de las vistas asíncronas.

Flask 2.0 agregó soporte incorporado para rutas/vistas asincrónicas , controladores de errores, funciones de solicitud antes y después, ¡y devoluciones de llamada de desmontaje!

Para obtener más información sobre las vistas asíncronas en Django y Flask, consulte los artículos Vistas asíncronas en Django 3.1 y Asíncronas en Flask 2.0 , respectivamente.

Pruebas

Ambos marcos tienen soporte incorporado para pruebas.

Para las pruebas unitarias, ambos aprovechan el marco de pruebas unitarias de Python. Cada uno de ellos también admite un cliente de prueba al que puede enviar solicitudes y luego inspeccionar y validar partes de la respuesta.

Consulte Probar aplicaciones Flask y Probar en Django respectivamente para obtener más información.

En términos de extensiones, si le gusta cómo funciona el marco unittest, consulte Flask-Testing . Por otro lado, la extensión pytest-flask agrega compatibilidad con pytest a Flask. Para Django, echa un vistazo a pytest-django .

Otras características

Hay varias otras características no mencionadas que vienen con Django pero no con Flask:

DjangoExtensión de matraz/recurso
Fuentes Atom y RSSAtom RSS Feed Generator con Python y Flask
Marco de almacenamiento en cachéAlmacenamiento en caché de frascos
Herramienta de arranqueFrasco-AppBuilder , CLI
Mapas del sitioFlask-Mapa del sitio

Seguridad

Como se mencionó, Django tiene protección incorporada contra una serie de vectores de ataque comunes como CSRF, XSS e inyección de SQL. Estas medidas de seguridad ayudan a proteger su código contra vulnerabilidades. El equipo de desarrollo de Django también divulga de manera proactiva y corrige rápidamente las vulnerabilidades de seguridad conocidas. Flask, por otro lado, tiene una base de código mucho más pequeña, por lo que hay menos área de superficie abierta al ataque. Sin embargo, deberá abordar y corregir las vulnerabilidades de seguridad en el código de su aplicación artesanal a medida que surjan.

Al final del día, usted está tan seguro como su eslabón más débil. Dado que Flask depende mucho más de las extensiones de terceros, las aplicaciones solo serán tan seguras como la extensión menos segura. Esto ejerce más presión sobre su equipo de desarrollo para mantener la seguridad al evaluar y monitorear bibliotecas y extensiones de terceros. Mantenerlos actualizados es lo más importante (y a menudo lo más difícil) aquí, ya que cada extensión tiene su propio equipo de desarrollo, documentación y ciclos de lanzamiento. En algunos casos, es posible que solo haya uno o dos desarrolladores que mantengan una extensión en particular. Cuando evalúe una extensión sobre otra, asegúrese de revisar los problemas de GitHub para ver cuánto tardan los mantenedores en responder a los problemas críticos.

Esto no significa que Django sea inherentemente más seguro que Flask; simplemente es más fácil asegurarlo por adelantado y mantenerlo durante la vida útil de su aplicación.

Recursos:

  1. Consideraciones de seguridad de matraces
  2. Seguridad en Django
  3. Protección de las aplicaciones web de Flask
  4. Proteja su aplicación web Django de las amenazas de seguridad

Flexibilidad

Flask, por diseño, es mucho más flexible que Django, y está destinado a ser ampliado . Debido a esto, Flask generalmente tarda más en configurarse, ya que tendrá que agregar las extensiones adecuadas en función de las necesidades comerciales, por ejemplo, ORM, permisos, autenticación, etc. Este costo inicial da como resultado una mayor flexibilidad en el futuro para las aplicaciones que no se ajustan al modelo estándar de Django.

Eso sí, ten cuidado con esto. La flexibilidad brinda a los desarrolladores más libertad y control, pero esto puede ralentizar el desarrollo, especialmente para equipos más grandes, ya que se deben tomar muchas más decisiones.

A los desarrolladores les encanta tener la libertad de hacer lo que quieran para resolver un problema. Dado que Flask no proporciona muchas restricciones u opiniones sobre cómo se desarrolla una aplicación, los desarrolladores pueden presentar las suyas propias. El resultado es que dos aplicaciones de Flask que son funcionalmente intercambiables en comparación una al lado de la otra tendrán una estructura diferente. Por lo tanto, necesita un equipo más maduro que comprenda los patrones de diseño, la escalabilidad y la importancia de las pruebas para manejar esa flexibilidad.

Educación

Aprenda patrones, no lenguajes o marcos.

Independientemente de si su objetivo final es aprender Flask o Django, comience con Flask. Es una gran herramienta para aprender los fundamentos del desarrollo web y las mejores prácticas junto con las piezas centrales de un marco web que son comunes a casi todos los marcos.

  1. Flask es más ligero y mucho más explícito que Django. Por lo tanto, si es nuevo en el desarrollo web pero no en Python, le resultará mucho más fácil desarrollar en Flask, ya que se sentirá como si estuviera trabajando con Python estándar para definir controladores de solicitudes y vistas y demás.
  2. Django tiene muchos gastos generales. Desde la estructura del proyecto hasta la configuración y la instalación de una serie de tuercas y tornillos de los que no sabe nada, se perderá y terminará aprendiendo más sobre Django que sobre los fundamentos reales.

En casi todos los casos, se recomienda aprender Flask antes que Django. La única vez que debe desviarse de eso es cuando solo necesita obtener una aplicación rápidamente para satisfacer a alguna parte interesada externa. Solo asegúrese de volver a Flask para aprender los conceptos básicos en algún momento.

Fuente abierta

Django y Flask tienen fuertes comunidades de código abierto.

Estadísticas de GitHub al 24 de febrero de 2022:

MétricoDjangoMatraz
Primera confirmación20052010
Colaboradores2,188646
Usuarios*849,772959,728
Vigilantes2,2932.191
Estrellas62,55458,086

*número de veces que la dependencia es utilizada por otros repositorios

Para obtener más información, revise la comparación de código abierto de Django y Flask de Open Hub .

Preguntas de desbordamiento de pila a partir del 24 de febrero de 2022:

--

¿Qué podemos concluir aquí?

  1. Ambas comunidades son muy activas.
  2. Django es más antiguo y tiene muchos más colaboradores.
  3. Flask es utilizado por más proyectos
  4. Hay más contenido disponible en Django

Para comparar realmente estos marcos (o ecosistemas) desde una perspectiva de código abierto, tendría que tener en cuenta Jinja2 y Werkzeug junto con algunas de las bibliotecas y extensiones principales de Flask como SQLAlchemy / Flask-SQLAlchemy, Alembic / Flask-Alembic y WTForms. / Frasco-WTF.

Dado que la funcionalidad central de Flask se distribuye en múltiples proyectos, es más difícil para la comunidad crear y desarrollar la sinergia necesaria entre proyectos para mantener el impulso. Por ejemplo, Flask no tiene una única extensión de facto para crear API RESTful; hay (posiblemente) cuatro extensiones populares a partir de febrero de 2022:

  1. Conexión
  2. Matraz-RESTful
  3. Matraz con clase
  4. Matraz-RESTX

Además, para encontrar estas extensiones, debe tener algunas habilidades de recuperación de información bastante sólidas. Tendrá que filtrar todas las extensiones no mantenidas y los artículos que hacen referencia a ellas. De hecho, hay tantos proyectos de extensión diferentes para las API RESTful que a menudo es más fácil implementar el suyo propio y abrirlo. En ese punto, probablemente lo mantendrá por un tiempo, pero eventualmente se convertirá en parte del problema en lugar de una solución.

Notas:

  1. Esto no es un golpe contra la comunidad de Flask. Es un problema en el código abierto en su conjunto, especialmente con marcos micro web en los que a menudo tiene que improvisar una serie de proyectos mantenidos por diferentes desarrolladores en diferentes ciclos de lanzamiento con diferentes niveles de calidad de la documentación. Dirígete a la comunidad de JavaScript si quieres ver esto al extremo.
  2. La comunidad de Django no es inmune a esto de ninguna manera. Simplemente es un problema menor, ya que maneja casi todo lo necesario para crear y proteger una aplicación web estándar lista para usar.

Para obtener más información sobre esta revisión, consulte la sección "Impulso de código abierto" de Django vs Flask: la perspectiva de un profesional :

Al no tener un frente unido, la oportunidad de esfuerzos sinérgicos que unen las extensiones no se materializa, creando extensiones que son porosas. Esto deja a los desarrolladores para completar los espacios en blanco para la funcionalidad integral que ya estaría funcionando si hubieran elegido una herramienta diferente para el trabajo.

Contratación

A pesar de la popularidad de Python y Django, es difícil contratar desarrolladores de Django. Son difíciles de encontrar y retener debido a que tienen una gran demanda y, por lo general, son más del lado senior, por lo que pueden ser bastante costosos. Tampoco hay muchos aspirantes a desarrolladores web nuevos que aprendan Django, ya que la industria se centra más en marcos más pequeños y el marco en sí es difícil de aprender.

  1. Tendencias de la industria : debido al auge de los microservicios, los aspirantes a desarrolladores web generalmente están aprendiendo los marcos más pequeños y livianos. Además, cada vez más desarrolladores web eligen JavaScript, en lugar de Python o Ruby, como su primer idioma debido a la popularidad de los marcos de JavaScript del lado del cliente: Angular, React y Vue.
  2. Difícil de aprender : hay una sorprendente falta de tutoriales de Django para principiantes. Incluso la documentación de Django, que es increíblemente completa, y el infame tutorial de encuestas no están diseñados para principiantes.

Flask también puede ser difícil de contratar, pero tiende a ser más fácil que Django, ya que es un marco liviano con menos capas de abstracción. Un desarrollador sólido con experiencia en un marco similar en un lenguaje diferente, como Express.js o Sinatra , puede ponerse al día con una aplicación Flask con bastante rapidez. Al contratar a dichos desarrolladores, centre su búsqueda en aquellos que entienden los patrones de diseño y los principios fundamentales del software en lugar de los lenguajes o marcos que conocen.

Casos de uso

Asegúrese de tener en cuenta las necesidades individuales de su proyecto cuando decida un marco. Dado que Django proporciona muchas campanas y silbatos, debe aprovecharlos. Si tiene fuertes desacuerdos con la forma en que Django maneja algo, es posible que desee optar por Flask. Lo mismo puede decirse si no va a aprovechar la estructura y las herramientas que proporciona Django.

Veamos algunos ejemplos.

Base de datos

Si su aplicación usa SQLite, PostgreSQL, MySQL, MariaDB u Oracle, debería echarle un vistazo a Django. Por otro lado, si está utilizando NoSQL o ninguna base de datos, entonces Flask es una opción sólida.

Tamaño del proyecto y vida útil prevista

Flask es mejor para proyectos más pequeños y menos complicados que tienen alcances bien definidos y una vida útil prevista más corta.

Dado que Django fuerza una estructura de aplicación consistente independientemente del tamaño del proyecto, casi todos los proyectos de Django tienen una estructura similar. Por lo tanto, Django maneja mejor los proyectos más grandes (con equipos más grandes) que tienen una vida útil más larga y un gran potencial de crecimiento, ya que lo más probable es que tenga que incorporar nuevos desarrolladores de vez en cuando.

tipo de aplicacion

¿Qué tipo de aplicación estás construyendo?

Django se destaca en la creación de aplicaciones web completas con plantillas del lado del servidor. Si solo está desarrollando un sitio web estático o un servicio web RESTful que alimenta su SPA o aplicación móvil, Flask es una opción sólida. Django junto con Django REST Framework también funciona bien en este último caso.

API RESTful

¿Estás diseñando una API RESTful?

Django REST Framework (DRF), uno de los paquetes Django de terceros más populares , es un marco utilizado para exponer modelos Django a través de una interfaz RESTful. Viene con todo lo que necesita (vistas, serializadores, validación, autenticación) y más (API navegable, control de versiones, almacenamiento en caché) para crear API de forma rápida y sencilla. Dicho esto, nuevamente, tenga en cuenta que, al igual que el ORM de Django, está diseñado para combinarse con una base de datos relacional.

Flask también tiene una serie de excelentes extensiones:

UsarExtensiones
Puntos de vistaFlask-RESTful , Flask-Classful , Flask-RESTX
Publicación por entregasFrasco-Marshmallow
AutorizaciónMatraz-JWT , Matraz-JWT-Extendido

¡ Asegúrese de revisar también Connexion , que combina la funcionalidad de vista, serialización y autenticación en un solo paquete!

--

Revise esta respuesta de Stack Exchange para conocer otros requisitos que quizás desee tener en cuenta al elegir un marco.

Actuación

Flask funciona un poco mejor ya que es más pequeño y tiene menos capas. Sin embargo, la diferencia aquí es insignificante, especialmente cuando se tiene en cuenta la E/S.

Conclusión

Entonces, ¿qué marco debería usar? Como siempre, depende. La elección de optar por un marco, lenguaje o herramienta en lugar de otro depende casi por completo del contexto y el problema en cuestión.

Django tiene todas las funciones, por lo que requiere que usted o su equipo tomen menos decisiones. Probablemente puedas moverte más rápido de esa manera. Sin embargo, si no está de acuerdo con una de las elecciones que Django hace por usted o si tiene requisitos de aplicación únicos que limitan la cantidad de funciones que puede aprovechar, es posible que desee buscar Flask.

Siempre va a haber compensaciones y compromisos.

Piense en las limitaciones del proyecto, como el tiempo, el conocimiento y el presupuesto. ¿Cuáles son algunas de las características clave de su aplicación? ¿En qué no puedes comprometerte? ¿Necesita moverse rápidamente? ¿Tu aplicación requiere mucha flexibilidad? Trate de dejar de lado sus opiniones al responder estas preguntas.

Al final, ambos marcos han reducido la barrera de entrada para la creación de aplicaciones web, haciéndolas mucho más fáciles y rápidas de desarrollar.

Fuente:  https://testdriven.io

#django #flask 

Ahebwe  Oscar

Ahebwe Oscar

1620185280

How model queries work in Django

How model queries work in Django

Welcome to my blog, hey everyone in this article we are going to be working with queries in Django so for any web app that you build your going to want to write a query so you can retrieve information from your database so in this article I’ll be showing you all the different ways that you can write queries and it should cover about 90% of the cases that you’ll have when you’re writing your code the other 10% depend on your specific use case you may have to get more complicated but for the most part what I cover in this article should be able to help you so let’s start with the model that I have I’ve already created it.

**Read More : **How to make Chatbot in Python.

Read More : Django Admin Full Customization step by step

let’s just get into this diagram that I made so in here:

django queries aboutDescribe each parameter in Django querset

we’re making a simple query for the myModel table so we want to pull out all the information in the database so we have this variable which is gonna hold a return value and we have our myModel models so this is simply the myModel model name so whatever you named your model just make sure you specify that and we’re gonna access the objects attribute once we get that object’s attribute we can simply use the all method and this will return all the information in the database so we’re gonna start with all and then we will go into getting single items filtering that data and go to our command prompt.

Here and we’ll actually start making our queries from here to do this let’s just go ahead and run** Python manage.py shell** and I am in my project file so make sure you’re in there when you start and what this does is it gives us an interactive shell to actually start working with our data so this is a lot like the Python shell but because we did manage.py it allows us to do things a Django way and actually query our database now open up the command prompt and let’s go ahead and start making our first queries.

#django #django model queries #django orm #django queries #django query #model django query #model query #query with django