Je suis prêt à vous accompagner ! Contactez-moi
Montréal, QC, Canada

Pourquoi Django reste mon framework Python préféré

Dans cet article, je partage mon expérience avec Django et pourquoi, après plus de 10 ans, ce framework reste mon préféré pour le développement web en Python.
Mon amour pour Python

Mon amour pour Python ne date pas d'hier. Avant, j'avais travaillé avec PHP pendant environ 4 ans. Quand j'ai découvert la syntaxe de Python, sans accolades {} et sans $, ça m'a fait sourire. Je me suis dit : "Il n'y a plus rien, juste la logique qui compte". C'était simple, épuré, et cela correspondait parfaitement à ma manière de programmer, où j'ai toujours mis l'accent sur une bonne indentation. Avec Python, l'indentation est cruciale, et j'ai tout de suite adhéré à cette approche.

Les débuts avec Django

Mon parcours avec Django remonte à la version 1.3. À cette époque, les migrations n'étaient pas intégrées dans le framework. Il fallait utiliser un package externe, South, pour gérer les migrations. Malgré cette jeunesse, j'ai eu un véritable coup de cœur pour Django. C'était clair : tout avait été pensé pour faciliter le travail des développeurs, avec une console administrative directement incluse. À l'époque, ni Laravel ni Symfony n'avaient de solution "admin" intégrée. Il fallait donc coder tout un backend administratif pour les clients, ce qui augmentait considérablement la charge de travail. Pour moi, c'était une révélation, et aujourd'hui, 10 ans plus tard, mon enthousiasme pour Django n'a pas faibli.

Pourquoi Django reste le meilleur

Django a beaucoup évolué au fil des ans, mais son essence est restée la même. Il offre toujours un ORM puissant, un excellent moteur de templating, et surtout une gestion des migrations SQL qui facilite l'évolution des projets. Est-ce un framework "bas niveau" ? Je dirais qu'il est juste au bon niveau. Comparons-le avec des frameworks comme Flask et FastAPI. Ces deux-là sont des micro-frameworks : ils nécessitent d'ajouter chaque brique selon les besoins. C'est un peu comme une autre de mes passions : la musique.

Une analogie avec la musique

Je suis guitariste, et je vois des similitudes entre les frameworks et les pédales de guitare. Certains musiciens aiment accumuler les pédales, les brancher dans tous les sens, changer d'amplis, etc. D'autres, comme moi, préfèrent un pédalboard intégré, qui offre toutes les fonctionnalités dans un seul ensemble. Certes, il y a des limitations en termes de modularité, mais la simplicité et l'efficacité sont là. Pour moi, Django, c'est mon pédalboard intégré. Il fait tout ce dont j'ai besoin, sans avoir à passer des heures à assembler des morceaux.

La sécurité avec Django

En termes de sécurité, Django fait également très fort. Il suffit de mettre à jour le framework pour être sûr que tout est à jour, en un seul coup. Avec Flask, en revanche, il faut jongler avec plusieurs plugins : un pour le templating, un pour l'ORM (SQLAlchemy), et même un autre plugin pour gérer les migrations. C'est complexe et, à mon avis, peu efficace.

Flask et FastAPI : Les alternatives

J'ai exploré d'autres frameworks Python, mais Django reste celui qui me convainc le plus. Flask a peut-être sa place dans des projets spécifiques, mais uniquement si vous n'avez pas besoin d'un ORM ou si vous ne travaillez pas avec une base de données relationnelle. Dans ce cas, un site web statique ou un proxy est envisageable.

L'asynchrone avec FastAPI

Quant à FastAPI, il a l'avantage de l'asynchrone. J'apprécie cette fonctionnalité, et il est vrai que Django a pris du temps à introduire l'async dans son architecture. Toutefois, même si Django n'est pas encore complètement asynchrone à cause de son ORM, cela ne justifie pas pour moi un changement vers FastAPI. FastAPI est excellent pour des APIs REST, mais si vous avez besoin de GraphQL, vous devrez de toute façon utiliser Graphene, qui peut aussi être intégré dans Django.

Conclusion

En conclusion, Flask peut être utile pour des projets très spécifiques où un backend relationnel n'est pas nécessaire. FastAPI est une bonne option pour les APIs REST, mais si vous avez une base de données relationnelle, je pencherais plutôt pour Django REST Framework. En fin de compte, Django reste mon choix préféré, car il me permet d'avancer rapidement et efficacement, tout en garantissant la sécurité et la modularité nécessaires à mes projets.

Sources

Documentation officielle de Django
https://docs.djangoproject.com

Documentation officielle de Flask
https://flask.palletsprojects.com/en/latest/

Documentation officielle de SQLAlchemy
https://www.sqlalchemy.org/

Documentation officielle de FastAPI
https://fastapi.tiangolo.com/

Documentation officielle de Laravel
https://laravel.com/docs

Auteur

Vincent Cantin Bellemare
6 September 2024

Scroll