Quels sont vos frameworks Web Python préférés en 2018 ? Pourquoi ?
Partagez vos avis

Le , par Malick, Community Manager
Quels sont vos frameworks Web Python préférés en 2018 ? Pourquoi ? Partagez vos avis
Chers membres du Cub,

Comme vous le savez, la popularité du langage Python continue de faire la une des médias, et cela s'est récemment matérialisé par la publication du classement des meilleurs langages 2018 de l’Institute of Electrical and Electronics Engineers (IEEE). Ce dernier, qui est de surcroît la plus grande association mondiale de professionnels techniques, a en effet classé le langage Python à la première place de sa liste et cela devant des langages comme Java, C++, C, etc. Il convient de signaler que cette annonce confirme le précédent classement de l'IEEE qui date de 2017 et dans lequel Python était considéré comme le meilleur langage.

Face donc à cette ascension de Python, il semble évident que bon nombre de développeurs vont se lancer dans la programmation en se servant de ce langage. Pour ce faire, ces derniers vont devoir recourir aux frameworks afin de créer du code et ainsi développer des applications. Pour rappel, un framework offre aux développeurs une structure bien définie leur permettant de se focaliser sur la logique principale de l'application qui sera développée. Il devient donc important de bien choisir le framework idéal tout en prenant en compte la taille et la complexité du projet.

Ci-dessous quelques frameworks Python actuellement disponibles.

  • Bottle
    Un microframework Web WSGI (Web Server Gateway Interface) présenté comme simple, rapide et léger. Il intègre un serveur HTTP, des utilitaires, des templates, et le routage des requêtes.

  • CherryPy
    Fondé par Rémi Delon, CherryPy est un framework Python open source orienté objet qui est essentiellement utilisé par les développeurs pour créer des applications Web Python. Il dispose de son propre serveur Web multi-threadé.

    Vous pouvez créer des applications à l'aide de CherryPy qui s'exécutera sur tout système d'exploitation prenant en charge Python, tels que Windows, Linux / Unix et macOS.

  • Django
    Développé par Django Software Foundation, Django est considéré comme un framework Web Python complet . Il est open source et gratuit et permet aux développeurs de créer du code et des applications complexes de manière plus simple et en moins de temps comparativement à d'autres frameworks. Sa forte popularité chez les développeurs est due au fait qu'il possède une vaste collection de bibliothèques écrites en Python et certaines de ses principales fonctionnalités sont le routage des URL, le mapping objet-relationnel (en anglais object-relational mapping ou ORM), le mécanisme d'authentification, le moteur de modèle et les migrations de schéma de base de données.

  • Eve
    Un framework qui permet de concevoir et déployer des services Web. Plusieurs autres outils peuvent venir enrichir ses fonctionnalités, notamment en lui ajoutant des extensions.

  • Falcon
    Considéré comme un framework Python utilisé pour développer des API cloud et des backends d’applications, il est annoncé comme faisant partie des frameworks WSGI les plus rapides avec la capacité de traiter les requêtes plusieurs fois plus rapidement que les autres frameworks Web.

  • Pyramid
    Écrit en Python, ce framework Web, selon ses auteurs, donne aux développeurs la possibilité de développer des applications Web assez rapidement ; cela que ça soit de petites applications ou des applications complexes. Ces fonctionnalités peuvent être étendues en lui ajoutant des extensions, des paquets ou des applications conçues pour fonctionner avec ce framework.

  • Web2py
    Développé par Massimo De Pierro, Web2py est un framework d’applications Web multi-plateformes. Il est open source et gratuit, écrit en Python et permet à ses utilisateurs de créer du contenu Web dynamique. Ce framework intègre un éditeur de code, un débogueur et un outil de déploiement permettant de développer et de déboguer du code, ainsi que de tester et de gérer des applications.

  • Wheezy Web
    Il est considéré comme un framework Web WSGI performant, léger et de haute concurrence avec comme fonctions principales la conception d’applications Web modernes et efficaces. Étant optimisé pour la performance, il intègre un modèle d’architecture MVC, le routage des requêtes, un modèle de validation et mise à jour, une autorisation et une authentification, la mise en cache du contenu avec une dépendance et bien d’autres choses encore.


En dehors de cette simple question « Quels sont vos frameworks Web Python préférés en 2018 ? », ce débat est l'occasion de partager vos expériences sur les frameworks Web Python.

N'hésitez pas à préciser :

  • quelle version/édition du framework vous utilisez ?
  • quels sont ses principaux atouts ?
  • quels sont ses désavantages, ou les choses qu'il y aurait à améliorer ?
  • à qui conseilleriez-vous ce framework (développeur débutant, confirmé, expérimenté) ?
  • ce framework est-il un choix personnel ou quelque chose d'imposé (entreprise/école) ?
  • si le framework que vous utilisez vous a été imposé, quel autre framework auriez-vous préféré utiliser ? Ou quel framework utilisez-vous personnellement ?
  • combien de frameworks avez vous déjà utilisés ?
  • si vous en avez utilisé plusieurs, qu'est-ce qui a motivé ces changements ?


Voir aussi

Programmation : Python gagne de plus en plus en popularité, et Swift fait à nouveau son entrée dans le top 10 de l'index TIOBE d'octobre 2018

Meilleurs langages en 2018 selon l'IEEE : Python conforte sa place de leader, grâce à son ascension dans le machine learning et l'embarqué

IEEE : Python devient le meilleur langage en 2017 en dépassant C et Java, découvrez le classement complet selon divers critères


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Steinvikel Steinvikel - Membre confirmé https://www.developpez.com
le 18/10/2018 à 14:16
Django, et Flask semble dominer les choix.
Qu'apportent-ils de plus que les autres, ou de manière différente ?
leur couplage avec d'autre langage que Python ?
Avatar de jedema jedema - Membre régulier https://www.developpez.com
le 18/10/2018 à 16:04
Django possède des avantages exceptionnels :
  • Un système de migrations automatiques basées sur les models
  • Un ORM très pratique pour gérer 95% de ces requêtes SQL
  • Une interface admin auto générée et personnalisable.
  • Les Class Based Views qui peuvent faire gagner un temps fou.
  • Un système d'héritage de template
  • L'utilisation de Python qui permet de bénéficier de plein de choses comparé à PHP (Multi-thread, multi-core, typage dynamique/fort, lib IA / Machine Learning, Pandas, etc.)


En bref, Django a prévu son framework d'une façon à ce que les comportements ultra standard (genre CRUD) soit gérés hyper rapidement. Seulement si votre besoin dérive un tout petit peu du standard, vous surcharger ce que Django prévoit.
J'ai 6 ans d'XP en PHP à temps plein.
J'ai 4 ans d'XP en Python (plutôt à mi-temps).
Je suis plus productif avec Python/Django qu'avec PHP/Laravel ou PHP/CodeIgniter...

En utilisant correctement Django, on arrive à un projet extrêmement robuste.
Avatar de signix signix - Membre du Club https://www.developpez.com
le 18/10/2018 à 20:14
Django répond parfaitement aux besoin d'un framework adossé à une BD. Il propose énormément de chose out of the box. C'est LE framework web le plus important en python.
Flask est un microframework. Il propose peu de chose mais a énormément de plugins pour intégrer le reste.
Les deux permettent de rapidement sortir des projets qui marchent (je dirais que c'est une force de python).
Pour ma part j'ai aussi ajouté Pyramid que je trouve particulièrement bien codé et qui serait entre les deux. Un point intéressant c'est que tout ce qui n'est pas documenté est considéré brisé. La documentation est donc très bonne avec des explications des choix techniques.
Avatar de hotcryx hotcryx - Membre extrêmement actif https://www.developpez.com
le 19/10/2018 à 13:32
Ayant utilisé Mojolicious avec Perl au boulot, j'ai tenté de faire la même chose avec Flask sous Python, avec JQuery => ça fonctionne sans problème

Mojolicious est très robuste et complet (perlish).

Flask est très très facile d'utilisation, je le recommande mais reste un framework non encore dédié pour la PROD.
Ce qu'il faudrait faire c'est vérifier le code de Flask et également de voir la qualité du code produit pour utiliser Flask.
Autrement dit, "est-ce que Flask est pythonish ?!"

Concernant Django c'est un mastodonte, je me demande comment commencer et par où commencer !
Avatar de jedema jedema - Membre régulier https://www.developpez.com
le 19/10/2018 à 21:42
Je ne peux ni parler de Mojolicious ni Flask mais pour Django j'avais commencé par lire ce livre là (L'édition qui était en vigueur en 2012-2013, je ne connais pas cette dernière). Le début est un rappel du WEB et de Python qu'on peut sauter au besoin. Ensuite, je trouve que le livre est bien ficelé et permet d'avancer pas à pas. Une fois les bases appréhendées il ne faut pas hésiter à aller plus loin grâce à d'autres ressources :

Doc officielle
Blog
Ce livre : Mastering Django
Et celui-là : Two scoops of Django

Dans l'ordre d'apprentissage suivre un parcours comme ça n'est pas mal :
  1. Revoir bases WEB + bases Python
  2. Installer Python + Django
  3. Apprendre à utiliser Django en ligne de commande (startproject, startapp, runserver)
  4. Pour avoir des premiers résultats rapides, il est possible de faire des premières pages statiques sans BDD : (système de routes : urls.py, contrôleurs (appelés views), template simple (sans héritage)).
  5. Développer les premiers modèles de l'application en utilisant le maximum de champs différents (ForeignKey, etc.).
  6. Générer et lancer les migrations en CLI : (makemigrations, migrate)
  7. Créer l'interface d'administration auto générée pour avoir des résultats rapides.
  8. Utiliser les queryset dans les views pour afficher des données dynamiques
  9. Créer des formulaires (Formulaires fait à la main, ModelForm puis Class Based Views).


Puis : authentication, gérer les fichiers statiques, héritage de templates etc.

En espérant que ça soit utile
Contacter le responsable de la rubrique Accueil