7 votes

Les frameworks web Python, un avis honnête s'impose

Duplicatas possibles :
Recommandation pour des frameworks python simples à utiliser
Confusion entre Python et Webframework

Je lance deux projets pour mon entreprise qui finiront par être liés entre eux. Le premier est un système interne de réservation et de gestion permettant d'organiser des expositions et des conférences pour les délégués. Le second est un site web qui permettra aux délégués d'accéder aux informations relatives aux conférences et à leurs propres "comptes" et itinéraires.

Je programme en Python depuis un certain temps dans mon entreprise, mais presque uniquement dans un style procédural ; ma connaissance de la programmation orientée objet est limitée (auparavant, mon travail était effectué en C et en Lisp-procédural). La plupart des frameworks Python semblent plonger directement dans les structures orientées objet, ce qui dépasse de loin le niveau que j'apprends dans les cours et les livres.

Ce que je recherche, c'est un framework Python qui soit rapide à appréhender (aussi pythonique et procédural que possible), qui utilise des modèles de style HTML standard (mes compétences en HTML/CSS sont étendues) et qui me permette d'avoir une interface raisonnablement simple avec une base de données Postgresql et une base de données MySQL (toutes deux requises malheureusement). La direction a insisté pour que l'application principale soit hébergée sur des serveurs internes. Le système interne ne doit pas être super rapide car il sera limité à moins de 70 utilisateurs. Le site web devra être capable de gérer environ 1000 utilisateurs par heure.

Quels frameworks Python recommanderiez-vous et pourquoi ? Veuillez être aussi précis que possible. Si vous souhaitez laisser des informations sur les frameworks qui conviennent à d'autres projets, c'est bien, car cela aidera d'autres personnes à l'avenir.

Merci beaucoup pour vos recommandations.


Excellentes réponses, merci. Après avoir parcouru les pages d'accueil de nombreux projets de frameworks actuels, j'ai décidé d'opter pour deux frameworks. Django est probablement celui dont la courbe d'apprentissage sera la plus courte pour faire fonctionner le système interne. Quelqu'un sur une liste de diffusion a déjà indiqué que je pouvais probablement créer une petite application python qui récupérera les chiffres dont j'ai besoin dans la base de données interne et les transmettra automatiquement à la base de données MySQL. Comme l'intégration financière n'aura pas lieu avant 5 mois, je peux aussi profiter de la prise en charge de bases de données multiples dans Django.

Pour ce qui est du site web, j'opte pour les Pylônes. Cela me permettra d'acquérir de l'expérience avec les deux frameworks et Pylons ne semble pas si difficile à faire évoluer, peut-être parce que l'interface avec les composants indépendants semble plus flexible.

À un moment donné, j'essaierai Juno et web.py, mais probablement sur mon propre site web. N'arrêtez pas d'ajouter des commentaires car ils seront utiles à l'avenir pour moi et pour beaucoup d'autres qui se lancent dans leurs premiers projets web avec Python. Merci à tous.

7voto

Triptych Points 70247

En ce qui concerne les frameworks/CMS, mon conseil est généralement de choisir un framework populaire et de l'apprendre. Vous ne décrivez rien qu'un framework populaire ne puisse faire, et ils ont tous leurs forces et leurs faiblesses.

Les deux frameworks Python les plus populaires sont probablement Django y Pylônes Django est sans aucun doute le framework du moment.

Pour TRÈS Pour les petites applications, généralement des démos, et si la persistance n'est pas nécessaire, j'aime aussi utiliser cherrypy/mako.

1voto

Rad Points 6308

J'ai joué avec Django il y a quelque temps et, en ce qui concerne les frameworks web Python (il ne semble pas y en avoir beaucoup), il semblait assez mature. En voici un aperçu du cadre.

1voto

phillc Points 2748

Je ne pense pas qu'un problème d'échelle sera un problème quel que soit celui que vous choisissez... Ils sont tous mis à l'échelle de la même manière... au moins le premier million d'utilisateurs/mois.

Tous deux vous offrent vraiment des fonctionnalités qui vous faciliteront la vie. Dans les deux cas, votre crainte de ne pas connaître la programmation OO ne devrait pas être un gros problème, car vos données sont des objets et vous travaillez à partir de chacun d'eux.

Quant à ma recommandation, j'utilise personnellement Django pour beaucoup de mes projets... L'ORM est, à mon avis, incroyable, et la zone d'administration automatique est incroyable pour gagner du temps.

1voto

dwelch Points 1101

Je suis actuellement en train de réaliser mon 3ème projet en utilisant des pylônes. Avant de le commencer, je me suis penché sur Django car, comme je l'ai déjà dit, il semble être le framework python du moment. Bien que certains de ses aspects soient intéressants, j'ai trouvé que je préférais de loin Pylons. Je viens également d'un environnement C et le flux et le style ne sont pas trop difficiles à comprendre. La meilleure partie de ce logiciel est la facilité avec laquelle les autres paquets python s'intègrent à lui. SQLAlchemy est de loin ma boîte à outils ORM préférée et elle traite facilement Postgresql et MySQL. De plus, j'ai commencé à utiliser repoze au lieu d'Authkit et il semble beaucoup plus abouti. La documentation de Pylon s'améliore considérablement et la communauté m'a beaucoup aidé. Je le recommande vivement.

1voto

Daniel Roseman Points 199743

J'ai du mal à voir comment on peut programmer en Python sans toucher les objets...

Dans tous les cas, vous ne pourrez tout simplement pas éviter les objets lorsque vous traitez avec des bases de données. C'est pourquoi tous les principaux frameworks utilisent ce que l'on appelle un ORM - un mappeur objet-relationnel, soit quelque chose qui convertit les données entre le format relationnel utilisé dans une base de données et le format orienté objet utilisé dans le code Python.

Django utilise son propre ORM, mais Pylons utilise la bibliothèque SqlAlchemy d'un tiers. Je suis habituellement un partisan de Django, mais dans ce cas, vous trouverez probablement que Pylons est votre meilleur choix, car Django ne peut actuellement pas gérer plus d'une base de données à la fois, bien que cela soit en cours de développement cet été.

D'autre part, si vous pouvez vous limiter à une seule base de données d'une manière ou d'une autre, vous pouvez trouver que l'application d'administration intégrée de Django répond à la plupart de vos besoins, puisqu'il semble que vous ayez juste besoin d'une interface pour que les utilisateurs internes puissent gérer les données. Django fait plus ou moins cela d'emblée, alors que la plupart des autres frameworks nécessitent un peu de configuration et d'écriture de modèles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X