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.
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.
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.
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.
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.
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 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.