Skip to Content

Flask vs. Django

Un dels llenguatges més utilitzats avui dia tant en el desenvolupament web, com en la intel·ligència artificial i el Big Data és Python, una solució multiplataforma que destaca per ser de codi obert, multiplataforma i molt simple i fàcil d’entendre. Aquests avantatges han permès que el creixement de Python també s’hagi vist impulsat recentment pel seu ús habitual en projectes DevOps.

Els desenvolupadors que utilitzen Python poden optar per utilitzar diferents entorns de desenvolupament (frameworks) que faciliten la seva labor a l’hora de crear i gestionar codi amb aquest llenguatge de programació.

En aquest article veurem una comparativa de Flask vs. Django, dos dels millors frameworks per a Python del mercat.

Què és Django i Flask

Per a poder fer una comparativa de Django vs. Flask és necessari definir què és cadascun d’ells i quins són els seus usos, avantatges i inconvenients.

Què és Django​​

Django és el que es coneix com un framework “full stack” per a Python amb el qual es poden abordar tota mena de projectes en aquest llenguatge com el desenvolupament web escalable i d’alta qualitat.

Es tracta de l’entorn de desenvolupament de Python més popular, ja que permet un desenvolupament àgil en encarregar-se de manejar els controladors.

Què és Flask

Els que busquen un framework senzill per a desenvolupar aplicacions web utilitzen Flask, un micro framework ideal per a principiants. Amb Flask s’utilitzen les línies de codi necessàries per a realitzar qualsevol acció pel que és molt més senzill comprendre l’estructura de qualsevol aplicació o script, i saber què és el que realitza.

Avantatges i desavantatges de Django i Flask

Abordem els avantatges i desavantatges de tots dos entorns de desenvolupament de Python:

Avantatges de Django

  • Compta amb un sistema d’autenticació d’usuaris.
  • Maneig de versions que permet una distribució simple d’actualitzacions.
  • Ofereix un gran rendiment i flexibilitat, podent escalar projectes de manera senzilla.
  • Treballar sota un patró MVC (Model Vista Controlador), la qual cosa permet un desenvolupament àgil i reutilitzable.
  • Incorpora una àmplia varietat de paquets de llibreries (més de 4000).
  • Disposa d’una immensa comunitat d’usuaris en internet.
  • Inclou opcions de protecció per a les aplicacions, per exemple, contra atacs de SQL injection o atacs XSS (cross site scripting).
  • Proporciona una estructura de codi autogenerat.
  • Compta amb panell d’administració per a bases de dades.

Avantatges de Flask

  • S’adapta a cada projecte instal·lant extensions específiques per a aquest.
  • Inclou servidor web propi per a proves.
  • El disseny minimalista de la seva estructura li permet ser ràpid i amb un gran acompliment.
  • Compta amb documentació extensa per al desenvolupament d’aplicacions.
  • És molt senzill d’utilitzar, per la qual cosa és l’indicat per a començar a programar amb Python.
  • S’integra amb altres eines per a incrementar les seves funcions, com Jinja2 (motor de plantilles web) o SQLAlchemy (kit d’eines SQL de codi obert).

Desavantatges de Django

Entre els inconvenients que es poden trobar en utilitzar Django per a desenvolupar aplicacions web amb Python podem destacar la seva extensa documentació, que a vegades pot arribar a ser confusa i dispersa. També, pot resultar difícil a l’hora de realitzar API Rest (estil d’arquitectura programari per a crear aplicacions web respectant el protocol HTTP) o resultar complex quan es treballa amb sockets.

Desavantatges de Flask​

Flask no conté llibreries integrades, per la qual cosa és necessari descarregar-les per a poder utilitzar diferents funcions. Es tracta d’un entorn que genera dificultats a l’hora de realitzar migracions o proves unitàries. També és un desavantatge haver de recórrer a un mapatge d’objectes relacionals (ORM) extern per a connectar amb bases de dades.

El sistema d’autenticació d’usuaris de Flask és molt bàsic, alguna cosa que es troba a faltar en aquest entorn de desenvolupament Python.

Principals diferències entre Django i Flask

Són moltes les diferències entre tots dos entorns, fent de Django un framework ideal per a grans i complexos projectes web, mentre que Flask és recomanable per a petites aplicacions web (com a single page applications, SPA) o desenvolupament per part de programadors de Python nóveles.

El sistema d’autenticació d’usuaris de Django és molt superior al de Flask, permetent crear sistemes de login API de manera senzilla per a aplicacions petites.

La velocitat i rendiment de tots dos entorns de desenvolupament són molt bons, i prova d’ells són la quantitat d’aplicacions professionals que s’han desenvolupat amb tots dos (vegeu secció Casos d’ús). No obstant això, Flask és més ràpid en comparació amb Django a causa del disseny minimalista de la seva estructura.

Realitzar un API Rest és més senzill utilitzant Flask que recorrent a Django, no obstant això, els API Rest generats en Django tenen l’opció de convertir-se en pàgines HTML com endpoints (fer GET i POST és més senzill).

Quant a la connexió amb bases de dades Django incorpora el seu propi ORM i disposa dels seus propis models de dades, mentre que Flask ha de recórrer a un connector amb bases de dades extern i no aporta models propis de dades.

Casos d’ús

Tots dos frameworks s’utilitzen per al desenvolupament de molts llocs web de gran èxit i que reben molt trànsit web. És cert que són més les pàgines web que recorren a Django com framework de Python, però Flask compta amb molts llocs que aposten pel seu entorn de desenvolupament

Quines pàgines web usen Django

La facilitat d’aquest framework per a escalar projectes així com la seva capacitat per a processar gran quantitat d’informació ha fet que moltes webs d’èxit que suporten una enorme quantitat de trànsit web triïn Django com el seu entorn de desenvolupament.

Podem destacar entre les webs més reconegudes desenvolupada amb Python utilitzant el framework Django a: Instagram, Spotify, The Washington Post, Dropbox o Pinterest, entre altres.

Quines pàgines web usen Flask

L’ús d’aquest framework de Python s’ha vist incrementat durant els últims anys gràcies a la seva senzillesa i al control que proporciona sobre els projectes desenvolupats amb aquest llenguatge de programació.

Podem destacar entre les webs més reconegudes desenvolupada amb Python utilitzant l’entorn de desenvolupament Flask a: NetflixRed Hat, Reddit, Lyft o Airbnb.

 

En realitzar aquesta comparativa entre Flask i Django hem vist quins són els beneficis i inconvenients d’utilitzar tots dos frameworks a l’hora d’afrontar projectes amb el llenguatge de programació Python.

Tots dos entorns de desenvolupament són utilitzats per projectes web importants que suporten molt trànsit web. A l’hora de decantar-se per l’un o l’altre cal analitzar els seus pros i contres, i així decidir quin d’ells s’adapta millor a les necessitats de cada projecte web.

Share this post
Introducció a l’automatització i desplegament continu