Flask es el micro framework minimalista, rápido y ligero que debes aprender; Django es el framework web más famoso.
Flask es un framework que permite desarrollar aplicaciones web de forma sencilla, está especialmente guiado para desarrollo web fácil y rápido con Python.
Explora con Platzi nuestros cursos de programación en python.
Una de sus características a destacar es el potencial de instalar extensiones o complementos acorde al tipo de proyecto que desarrollarás. Sólo instalas las funcionalidades que en realidad vayas a utilizar.
Django fue diseñado para trabajar bajo un patrón MVC (modelo, vista, controlador), aunque es también definido como MVT (modelo, vista, plantilla) porque el framework se encarga del manejo de controladores, razón por la cual se dice que es reusable y permite el desarrollo ágil, una de las razones que generar su popularidad.
Veamos un Hola Mundo en cada framework
Hola mundo en Flask:
from flask import Flask
app = Flask(__Name__)
@app.route("/")defhello():return"Hola mundo desde Flask! ¿Corto y directo al punto no?"if __name__ = "__main__":
app.run()
Hola mundo desde Django:
import textwrap
from django.http import HttpResponse
from django.views.generic.base import View
classHomePageView(View):defdispatch(request, *args, **kwargs):
response_text = textwrap.dedent('''\
<html>
<head>
<title>Hola mundo desde Django</title>
</head>
<body>
<h1>Hola platzi desde Django!</h1>
<p>¿Mucho código para algo tan simple no?</p>
</body>
</html>''')
A simple vista podemos notar que Flask es más sencillo, y se utilizó una menor cantidad de líneas de código. Tener menos líneas de código ayuda a una mejor lectura y compresión del proyecto.
Flask sigue una regla "Hacer solo una cosa, pero hacerla bien".
Si te interesa profundizar tus conocimientos en Flask y Django, puedes revisar nuestros cursos de desarrollador web.
El REST framework de Django cuenta con un sistema de autenticación de usuarios, mientras que Flask puede usar las opciones nativas para crear un sistema de autenticación básico, aunque se puede crear un sistema de login API con Flask-HTTPAuth.
Ambos frameworks permiten un backend limpio en manejo de usuarios, pudiendo limitar memoria y velocidad para evitar caídas en el servidor.
Las API’s que genera Django REST son mucho mejores, pudiendo estos convertirse fácilmente en páginas HTML como puntos finales. Esto significa hacer solicitudes GET y POST fácilmente, algo que en Flask está más condicionado.
La velocidad de Flask es un gran punto a su favor. El desempeño en velocidad que tiene Flask es superior gracias a su diseño minimalista en su estructura.
Conviértete en un experto en desarrollo web con Python fácil, rápido y con una interfaz amigable como lo es Flask el micro framework minimalista, ligero y lo mejor de todo es que Platzi tiene un curso muy bueno con el cual aprenderás a usarlo en platzi.com/flask.
from django.http import HttpResponse from django.views.generic import View classHomePageView(View):defget(self, *args, **kwargs):return('"Hola mundo desde django! ¿Corto y directo al punto no?')
esto mas corto, que el código feo que tienes :3
¡Buenísimo, muchas gracias por darnos otro punto de vista!
Lamentablemente por el articulo pero se noto mucho que el ejemplo del código en Django fue hecho feo y complejo deliberadamente. Como lo demostró jysa65 escribir código en django puede ser tan fácil y directo como en flask. Por otra parte dependiendo de la aplicación a crear, lo que django entrega ya listo como el manejo de usuarios hace que todo sea más rápido y fácil, de hay que sea tan popular, y hablando de velocidad, django no tiene nada que envidiarle a flask.
from flask import Flask app = Flask(__Name__) @app.route("/")defhello():return"Muy buen post! entendí claramente el potencial de cada uno de ellos."if __name__ = "__main__": app.run()
Al tener un proyecto hecho e inicialmente diseñado en Flask ¿Se hace muy complicado migrarlo en Django? ¿Tiene sentido migrar algo minimalista a lo más complejo de Django? Saludos y buen post.
No es complicado migrarlo para nada, si tiene mucho sentido porque yo puedo tener mi API hecha solo con Flask y luego si yo quiero puedo migrar a tener toda la APP completa a Django.
Muchas gracias por tu respuesta.
Estimado darvin_orozco, no partas de la idea que django es complejo, de hecho es muy fácil de usar. El tema de complejo puede venir solamente de que trae de forma predeterminada varios módulos que tal vez no vallas a utilizar, pero eso tampoco quiere decir que debas usarlos forzosamente para que tu aplicación funcione. Si te aprendes como funciona el modelo MVT el resto es muy fácil. Te recomiendo si que partas desde la versión 2.0 en adelante ya que desde hay simplificaron mucho el tema de rutas.
Hola,
Solo quería comentar que los ejemplos que pusiste no son muy comparables entre ellos.
Si, flask tiene una menor carga de código, pero a medida que un proyecto crece, django va ganando ventajas gracias a su filosofía “no te repitas”. En proyectos orientados a contenido como un CMS, Django le da mil vueltas, así que depende mucho del propósito.
Para desarrollar APIs y servir una SPA yo recomendaría FastAPI por sobre cualquiera de estas dos opciones.
from django.http import HttpResponse
def homePageView(request):
return HttpResponse(“Hello, World!”)