Retour aux articles
  • 23.11.2021

Flask vs CherryPy : Quelles différences ?

Flask vs CherryPy : Quelles différences ?

Lorsqu'il s'agit de développement back-end, Python est l'un des meilleurs langages de programmation à utiliser. De nombreux frameworks web Python sont disponibles sur le marché, qu'il s'agisse de frameworks robustes, inclus dans la batterie, comme Django ou Web2py, ou de micro-frameworks légers, comme Flask, CherryPy et Pyramid.

 

Flask est le framework web Python le plus populaire après Django, tandis que CherryPy est l'un des plus anciens frameworks d'applications web. 

 

 

Qu'est-ce que Flask ?

Flask est un micro-framework web Python qui vise à garder le noyau simple et facilement extensible.

Il est possible d’utiliser ce framework d'application web pour compiler des modules et des bibliothèques et écrire une application web performante. Flask est de nature pythonique, utilisant des méthodes explicites pour rester aussi proche du fonctionnement du langage de programmation par rapport aux autres frameworks web.

Flask est la combinaison parfaite de flexibilité et de structure. Il offre des outils et des utilitaires qui aident à accélérer le développement, mais laisse la possibilité de choisir sa base de données et ses moteurs et serveurs de modèles.

Quelles sont les caractéristiques de Flask ?

  • Système de routage : Basé sur la bibliothèque d'utilitaires d'application WSGI, Werkzeug, qui agit comme un système de routage.
  • Prise en charge des tests unitaires intégrés.
  • Prise en charge du traitement des requêtes synchrones.
  • Système de template : Jinja2 fonctionne comme son moteur de template. Il n'est pas nécessaire d'écrire du code de bas niveau comme la gestion des fils et les protocoles.
  • Quelques conventions pour la création de modèles et le stockage des données, mais elles peuvent être facilement modifiées.
  • Fiable
  • Bonne documentation.

Qu'est-ce que CherryPy ?

CherryPy est un framework d'application Web basé sur Python et utilisé pour un développement rapide. Il est possible de construire des applications web en moins de temps avec des codes plus petits et plus propres.

Développé il y a 10 ans par Rémi Delon, ce framework est l'un des plus anciens frameworks Python qui reste pertinent et se met à jour en permanence pour s'adapter à la communauté grandissante.

Quelles sont les caractéristiques de CherryPy?

  • Modulaire : Le framework est modulaire, fournissant des composants indépendants et réutilisables qui augmentent l'efficacité et la rapidité du développement.
  • Masquage des données : Tous les modules sont indépendants et utilisent l'abstraction des données pour réduire la complexité.
  • Extensible : Il permet d'utiliser tous les outils et bibliothèques Python sans problème.
  • Évolutif : On peut rapidement faire évoluer vos applications CherryPy pour gérer davantage d'utilisateurs.
  • Simplicité : La syntaxe et les règles de codage sont simples. En connaissant Python, on sera en mesure d'écrire un programme en quelques minutes.
  • Serveurs HTTP : Il possède son propre serveur HTTP où l’application peut être hébergée.
  • Déploiement : L'application Web peut être déployée sur n'importe quelle passerelle compatible WSGI sans coûts supplémentaires.
  • Non limitatif : On peut utiliser la technologie de notre choix pour le templating, les bases de données, l'architecture.

Flask vs CherryPy : Quelles différences ?

Flask vs CherryPy : Sécurité des applications

En Flask, on bénéficie de pratiques préventives robustes contre le Cross-Site Scripting et la sécurité JSON. Cependant, on doit configurer la politique de sécurité du contenu (CSP) en tant qu'en-tête de réponse pour protéger ses données contre la falsification des requêtes intersites (CSRF).

Le noyau du framework CherryPy est livré avec une suite qui permet de tester et de déboguer efficacement l’application. Il dispose de fonctionnalités intégrées qui aident dans des processus tels que l'encodage du code, la mise en cache, les sessions et l'autorisation des utilisateurs, les sessions et la mise en cache.

Flask vs CherryPy : Bases de données

Bien que Flask ne propose pas de framework ORM intégré, on peut utiliser des bibliothèques open-source ou des extensions comme Flask-SQLAlchemy et Flask-Pony. Cette architecture est une option idéale pour le développement de bases de données NoSQL. Elle a accès à des bibliothèques ou des extensions open source qui prennent en charge les bases de données NoSQL comme MongoDB, CouchDB, Cassandra et DynamoDB.

De même, on peut utiliser CherryPy pour gérer des bases de données relationnelles à l'aide de bibliothèques et d'extensions Python.

Flask vs CherryPy : Modèles de développement Web

Les fichiers modèles contiennent un ensemble de données statiques et permettent également d'incorporer d'autres données dynamiques. Flask peut proposer des modèles pour le document final, grâce au support du moteur de templating Jinga.

HTML supporte les applications WSGI (Web Server Gateway Interface) qui peuvent recevoir des requêtes transmises par des serveurs web. Malheureusement, CherryPy ne propose pas de système de templating HTML. Mais il prend en charge WSGI, ce qui permet de convertir une application Web en une application WSGI.

Cependant, il est facile d'intégrer des systèmes de création de modèles populaires comme Mako, Jinja2 ou Cheetah dans ce framework.

Flask vs CherryPy : Bibliothèques externes

Flask dispose de nombreuses bibliothèques et utilitaires externes. Il est possible de les implémenter dans les tâches courantes du projet par une intégration rapide. De plus, Flask dispose d'une communauté développée et riche qui assure des solutions rapides et efficaces lorsqu'un problème survient.

CherryPy est un framework très évolutif et flexible qui rend l'intégration avec toute bibliothèque Python standard simple et sans effort. Cependant, la communauté relativement restreinte de cette architecture ne propose pas de solutions ou d'outils ciblés.

Comme ce framework minimaliste et léger n'offre que quelques fonctionnalités de base, le manque de solutions affecte souvent les développeurs qui l'utilisent.