Python et le web : deux sorties majeures et trois articles Linux Mag

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
16
3
mar.
2009
Python
En ce début 2009, deux frameworks web modernes viennent de sortir en version majeure : Zope 3.4.0 et Pylons 0.9.7.

Zope 3 est une réécriture complète de Zope sous forme de composants réutilisables. Il prend la forme de trois sous-ensembles :
  • L'architecture de composants (Component Architecture) ;
  • Une grosse bibliothèque de composants basés sur cette architecture ;
  • Un serveur d'application permettant de créer une application web.

Pylons est un framework MVC minimaliste mais extensible, récent, très simple à apprendre, et comparable à Ruby-on-Rails ou Symfony. La version 0.9.7 est la dernière grosse étape en direction d'une 1.0, attendue pour cette année. Pylons met l'accent sur la norme WSGI et peut profiter de tous les middlewares WSGI (foutaises ? non, continuez encore quelques lignes).

Un des intérêts de Python pour le web est justement cette norme WSGI, qui permet l'interopérabilité entre les frameworks, l'échange de composants, la standardisation, et la réutilisabilité.

Pour vous aider dans votre choix, les 26 dernières pages du Linux Magazine de mars (n°114), actuellement en kiosque, sont justement consacrées à ces technologies : le premier article expose les principes et les particularités de la publication web en Python, dont WSGI, puis deux autres articles décortiquent trois frameworks web majeurs en Python : Pylons, Django et Zope 3.

Pour rappel, le Linux Mag Hors-Série n°40 est consacré à Python et contient notamment un article dédié à la Component Architecture de Zope 3.

Aller plus loin

  • # 42 œufs ?

    Posté par  (site web personnel) . Évalué à 3.

    Il y a également un article qui présente les possibilités CGI, FastCGI, SCGI et les 3 mod_python.
    Pylons, Django et Zope sont à chaque fois présentés à la suite pour chaque partie.
    Je pense que c'est une très bonne base pour se faire une idée des possibilités et des concepts de chaque.
    Un "hello world" puissance 10.
    • [^] # Re: 42 œufs ?

      Posté par  (site web personnel) . Évalué à 2.

      Exact ! Ces articles sont d'une excellente qualité.

      Je les conseille vivement à tous ceux qui souhaitent avoir une vue "d'ensemble" (incomplète bien sûr car il y a trop de sujet à traiter) du monde "web" Python.
  • # Turbogears 2.0 beta6 sorti le 25 février

    Posté par  . Évalué à 2.

    Quel est le rapport ? TurboGears 2 aka TG2 est fondé sur Pylons ! [1]
    Comme l'a bien souligné l'auteur de la dépêche, Pylons insiste sur 2 points: la réutilisation des composants déjà existants et la conformité aux "standards" pythonniques tel que WSGI.
    Il avait été envisagé de fusionner les deux frameworks mais cela ne s'est pas fait à cause de "priorités différentes mais compatibles".
    Contrairement à Pylons qui se veut un framework minimaliste et agnostique au niveau des composants (ORM, moteur de templates, etc ...), TG cherche à offrir un environnement de développement web complète avec une base commune à tous.

    TG2 se veut complétement compatible avec Pylons, pas de code dupliqué, l'outil en ligne de commande tg-admin a été remplacé par Paster, respect des conventions de Pylons etc ... L'avantage pour le développeur TG, c'est que l'on bénéficie automatiquement des avantages de Pylons (débogueur interactif, Shell intégré, support de WSGI, le composant Routes pour avoir de jolies url etc ...), sans pour autant réapprendre tout un framework.
    Pour le développeur qui ne connaissait pas TG, TG2 lui offre un environnement Pylons un peu moins brut de décoffrage.

    http://turbogears.org/
    http://turbogears.org/2.0/docs/main/WhatsNew.html

    [1] Pour ceux qui ne connaissent pas, Turbogears aka TG est un framework web RoR-like en Python et qui a pour particularité de ne pas réinventer la roue et la possibilité de remplacer les "briques" par défaut. ORM: SQLObject, SQLAlchemy templates: Kid,Genshi , controleur: CherryPy, javascript: MochiKit.
  • # web2py

    Posté par  (site web personnel) . Évalué à 1.

    Voir aussi web2py (http://mdp.cti.depaul.edu/) dont je ne peux rien dire sur la qualité du code vu mon manque d'expérience en python mais qui a des idées intéressantes.
  • # Et Nagare dans tout ça ?

    Posté par  . Évalué à 1.

    Ben oui, un joli petit framework Python tout mignon à base de continuations (à la Seaside)... http://www.nagare.org
    • [^] # Re: Et Nagare dans tout ça ?

      Posté par  . Évalué à 2.

      Raaaaahoui!

      (cri du mec qui a toujours lorgné sur Seaside sans jamais prendre le temps de se mettre au Smalltalk)
    • [^] # Re: Et Nagare dans tout ça ?

      Posté par  (site web personnel) . Évalué à 6.

      Encore un autre framework qui révolutionne le web ? Pfff, ça devient lassant. Pour comparer les frameworks, il faut regarder :
      * son âge : s'il a moins d'un an, c'est trop jeune pour être déployé en production
      * la taille de la communauté : impacte directement la quantité de documentations et de guides disponibles (ex: comparez la documentation de Django à celle de Nagare, c'est vite vu...)
      * le nombre de sites l'utilisant : plus un framework est utilisé, moins l'auteur va s'amuser à casser la compatibilité ;-) (ou alors assure la maintenance des anciennes versions)

      De mon expérience, Django est plus mature que Pylons par exemple. Django est mieux documenté et rapide à prendre en main. J'avais un peu galéré pour le brancher sur Apache par contre. J'avais besoin d'Apache pour du Single Sign On (SSO).
  • # Un autre framework web en python - CubicWeb

    Posté par  . Évalué à -1.

    Vous pouvez aussi jeter un coup d'oeil à CubicWeb http://www.cubicweb.org . Ses principales caractéristiques sont:
    • un moteur qui utilise une représentation explicite du modèle de données de l'application,
    • un langage de requête nommé RQL qui est semblable au SPARQL du W3C,
    • un mécanisme de sélection+vue qui permet la génération semi-automatique de XHTML/XML/JSON/text,
    • une bibliothèque de composants réutilisables (modèle de donnée et vues) qui satisfait les besoins les plus courants,
    • la puissance et l'adaptabilité du langage de programmation Python,
    • la solidité des bases SQL, des annuaires LDAP, de Subversion et Mercurial pour le stockage des données.
    Développé depuis 2000 par un projet de R&D qui se poursuit encore aujourd'hui, servant plusieurs centaines de milliers de visiteurs par jour pour certains sites, CubicWeb est une solution complète et éprouvée pour développer des applications web, qui promeut la qualité, la réutilisabilité et l'efficacité.
  • # Bien mais lourd

    Posté par  . Évalué à 2.

    J'ai pris pour habitude de travailler avec Cherrypy et Karrigell.

    J'aime les "frameworks" minimalistes avec le moins de dépendances possible. Django est à mon goût pas toujours facile à intégrer dans une architecture existante (avec apache 1.3, mod_python par exemple sur OBSD).

    Cherrypy est assez axé "bas niveau", tandis que Karrigell est axé simplicité. Tout dépend de ce que l'on veut développer. À savoir que beaucoup d'outils de développement web sont basés sur Cherrypy. Celui-ci est également très stable et mature.
  • # Et encore un autre petit nouveau

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.