Full-stack cadres
Django, TurboGears, et Pylônes surtout avoir le sens de blocs de Lego, où les différentes applications peuvent être utilisées dans différents sites web très facilement, à l'aide de l'prescrit des outils pour la base de données, réseau, etc. Si vous aimez les applications actuellement en cours de développement (par exemple, Byteflow, Sphène d'Outils de la Communauté, ou Flatpages pour Django), alors il n'y a pas vraiment beaucoup de travail à faire.
Des trois, Django a été la première que j'ai essayé, et je suis devenu fou à la recherche de la plus banale des choses, comme le code de l'URL de la page qui a été rendue. Django est bien poli et il a une bonne documentation, mais il n'aime pas vous laisser atteindre un bas niveau d'abstraction. Il est également accusé d'être monolithique et avoir un NIH attitude, bien qu'il devient de plus en plus modulaire.
TurboGears est écrit sur CherryPy, des Pylônes est écrit sur la Pâte, et TurboGears 2 est en cours d'écriture sur des Pylônes. Les pylônes et les TurboGears sont très similaires philosophies: pour la plupart, ils disent utiliser le "best-of-breed" les bibliothèques. Cependant, ils ont été initialement créés à des moments différents, et l'état de bibliothèques Python considérablement changé entre les deux. Ainsi, les deux cadres sont essentiellement de la colle autour de solide bibliothèques, mais ils utilisent différents outils pour à peu près tout. Un bref aperçu:
- TurboGears - CherryPy pour HTTP, Genshi (basé sur XML) pour les templates, SqlObject (plus simple) pour la persistance
- Pylônes - Coller pour HTTP, Mako (plus rapide) pour les templates, SqlAlchemy (plus puissant) pour la persistance
Coller et les Pylônes sont conçu entièrement autour de WSGI. WSGI (liens: Wikipédia, PEP 333, WSGI wiki est une interface de bas niveau, qui est essentiellement une puissante sur-ensemble de CGI et de ses frères. Alors que la plupart des gens reconnaissent son utilité pour cadre les développeurs, il y a beaucoup de controverse quant à son utilité pour webapp développeurs, dont je tairai le lien ici.
Des deux, des Pylônes est probablement le meilleur choix, car il offre plus moderne composants. Le TurboGears communauté était divisée il y a un moment; je ne suis pas sûr de savoir comment ils sont en train de faire maintenant, mais ça va encore être chaotique jusqu'à ce que la transition vers TurboGears 2.
HTTP cadres
CherryPy, Coller, et peut-être web.py faire beaucoup de réseautage pour vous, mais, à peu de chose. Si vous souhaitez utiliser Jinja2, Genshi, Mako, le Guépard, ou tout autre moteur de template, vous aurez à intégrer vous-même. Et si vous souhaitez utiliser SqlAlchemy, Tempête, SqlObject, ou Dejavu pour les bases de données, vous devrez vous intégrer vous-même. L'avantage est que les données de bas niveau est juste en face de vous. Par exemple, dans CherryPy, l'obtention de la base de l'URL, la liste des témoins, et la liste des en-têtes est aussi simple que
cherrypy.request.base
cherrypy.request.cookie
cherrypy.request.headers
parce que CherryPy est donc pythonic. L' request
est juste un objet qui possède tous ces attributs. De même, response
est un objet de sorte que vous pouvez configurer le client de cookies avec des déclarations comme
cherrypy.response.cookie['cookieName'] = 'cookieValue'
cherrypy.response.cookie['cookieName']['expires'] = 3600
Coller (dont je n'ai pas utilisé en dehors de Pylônes) est plus lent et moins pythonic, mais il utilise WSGI exclusivement et est actuellement à prendre de l'élan. Le WSGI guerres ont mijoté depuis CherryPy 3 a été publié à la fin de 2006, l'ajout de mieux WSGI soutien; mais les deux philosophies de conception sont toujours opposées.
D'autres cadres
Il y a aussi Zope, le heavy-duty grand-père de Python cadres, et Plone, un système de gestion de contenu qui s'exécute au-dessus d'elle. Je n'ai pas utilisé un, mais Zope est généralement comparé à Java, frameworks web – bonne si vous êtes à la recherche d'une plate-forme fiable, mais pas très bon pour le développement rapide. Zope 3 a considérablement réduit la courbe d'apprentissage, mais la plupart des Pythoneers ont probablement évolué.
Il y a aussi Tordu, un niveau inférieur du cadre et de l'installation du serveur, et Nevow, une autre couche plus Tordu. Je ne connais pas assez pour en dire beaucoup plus, cependant.
Il y a vraiment beaucoup de choix là-bas; pour la grande majorité des utilisateurs, Django, Pylônes, et CherryPy offrir la meilleure couverture, et je me retrouve à aller d'avant en arrière entre eux pour chaque projet. Ma préférence personnelle est une installation personnalisée avec CherryPy, tout simplement parce que je n'aime pas la hiérarchie et de l'opacité qui full-stack cadres essayer d'appliquer. Pour vous, CherryPy sonne comme un bon pari, trop.