PROJET AUTOBLOG


Shaarli - Les discussions de Shaarli

Archivé

Site original : Shaarli - Les discussions de Shaarli du 23/07/2013

⇐ retour index

Un petit tour des frameworks Web Python | Sam & Max: Python, Django, Git et du cul

dimanche 22 juin 2014 à 11:40
Yakmoijebrille, le 22/06/2014 à 11:40
(Permalink)

Famille Michon, le 10/09/2014 à 10:18
"""
Bottle : le plus petit disponible (tient dans un fichier). Génial pour du code jetable ou des petits sites, etc. Fantastique outil d’enseignement et d’apprentissage. En plus, ça tient plutôt bien la charge compte tenu de la taille.

django : le framework Python le plus connu. On peut tout faire avec, l’écosystème est fantastique (il y a des apps djangos tierces partout pour tout et n’importe quoi, c’est un truc de fou). Mais le maîtriser prend du temps. Efficace pour construire un site web avec beaucoup de logique personnalisée. Au final, si on veut être sérieux dans en programmation Web avec Python, on finit toujours par passer par Django.

flask : sa taille est entre django et bottle, et avec tout ce qu’il faut pour faire un site de taille moyenne. Il commence à avoir pas mal de plugins disponibles un peu partout sur la toile, et est une alternative très sympa quand on n’a pas besoin de charger les 3 tonnes de Django.

wep2py : se positionne en alternative à Django et Flask, mais avec une philosophie très différente. Pas mal de magie (à la rails), des interfaces graphiques pour l’admin, composants très couplés mais très intégrés… Je ne suis pas fan, mais on m’en a dit du bien.

cherrypy : un framework WSGI pure Python qui a de très bonnes perfs sans rien rajouter, même en prod. Mais depuis qu’ils ont rendu disponible sa partie serveur et qu’on peut l’utiliser pour Django/flask/bottle, ça ne vaut plus le coup d’utiliser sa partie framework qui n’a rien de fantastique.

pyramid : le plus gros compétiteur de Django en termes de fonctionnalités. Beaucoup moins monolithique, et bien plus flexible, donnant pas mal de contrôle. Mais l’intégration des composants de django le rend beaucoup plus facile à maîtriser, et son écosystème est 100 fois meilleur (j’ai toujours été en froid avec l’écosystème Zope).

twisted un framework internet asynchrone en pur Python. J’ai dit INTERNET, pas WEB. On peut faire HTTP, mais aussi SSH, IMAP, FTP, et à peu près n’importe quoi. Surpuissant, et ses performances sont incroyables. Son API est aussi la plus merdique de tout l’univers Python. Apprendre et utiliser Twisted, c’est comme se branler avec des gants de boxe en récitant l’alphabet à l’envers.

tornado : framework Web asynchrone. Techniquement le seul compétiteur de nodejs en pur Python (pas de gevent, d’extension C, etc) si on exclue crossbar encore trop immature. L’API n’est pas incroyable, mais pas trop dur, et les perfs sont bonnes. Les Websocket marchent clé en main.

cyclone : tornado qui tourne dans l’event loop de twisted. Pour pouvoir utiliser l’API de tornado pour le Web, mais les outils de twisted pour le reste. Si vous êtes capable d’utiliser ça à son plein potentiel, qu’est-ce que vous foutez à lire cet article ?

webpy : un ancêtre. Un fantôme du passé. Do not use.

Il existe ensuite tout un tas d’expérimentations de framework avec asyncio, gevent, etc. C’est plus du bricolage qu’autre chose pour le moment, alors je ne recommande pas de base un gros projet dessus à moins d’être déjà très à l’aise avec la prog web python.
"""
(Permalink)