Avis de non-responsabilité : Je suis l'auteur de tipfy et webapp2.
Un grand avantage de s'en tenir à webapp (ou à son évolution naturelle, webapp2) est que vous n'avez pas à créer vos propres versions des gestionnaires SDK existants pour le framework de votre choix.
Par exemple, différé utilise un gestionnaire d'application web. Pour l'utiliser dans une vue Flask pure, en utilisant werkzeug.Request et werkzeug.Response, vous devrez implémenter deferred pour elle (comme je l'ai fait aquí pour tipfy).
Il en va de même pour les autres gestionnaires : blobstore (Werkzeug ne prend toujours pas en charge les demandes d'intervalle, vous devrez donc utiliser WebOb même si vous créez votre propre gestionnaire -- voir tipfy.appengine.blobstore ), mail, XMPP, etc., ou d'autres qui seront inclus dans le SDK à l'avenir.
Il en va de même pour les bibliothèques créées pour App Engine, telles que ProtoRPC qui est basé sur webapp et aurait besoin d'un portage ou d'un adaptateur pour fonctionner avec d'autres frameworks, si vous ne voulez pas mélanger webapp et les gestionnaires de votre cadre de travail de choix dans la même application.
Ainsi, même si vous choisissez un framework différent, vous finirez par a) utiliser webapp dans certains cas particuliers ou b) devoir créer et maintenir vos versions pour des gestionnaires ou des fonctionnalités spécifiques du SDK, si vous les utilisez.
Je préfère de loin Werkzeug à WebOb, mais après plus d'un an de portage et de maintenance des versions des gestionnaires du SDK qui fonctionnent nativement avec tipfy, j'ai réalisé que c'est une cause perdue -- pour soutenir GAE à long terme, le mieux est de rester proche de webapp/WebOb. Cela facilite le support des bibliothèques SDK, la maintenance devient beaucoup plus facile, c'est plus à l'épreuve du temps car les nouvelles bibliothèques et fonctionnalités SDK fonctionneront dès le départ et il y a l'avantage d'une grande communauté travaillant autour des mêmes outils App Engine.
Une défense spécifique de webapp2 est résumée aquí . S'ajoutent à cela webapp2 peut être utilisé en dehors d'App Engine et est facile à personnaliser pour ressembler aux micro-frameworks les plus répandus et vous avez de bonnes raisons de le faire. De plus, webapp2 a une grande chance d'être inclus dans une future version du SDK (c'est extra-officiel, ne me citez pas :-) ce qui le fera avancer et apportera de nouveaux développeurs et de nouvelles contributions.
Cela dit, je suis un grand fan de Werkzeug et des gars de Pocoo et j'ai beaucoup emprunté à Flask et à d'autres (web.py, Tornado), mais -- et, vous savez, je suis partial -- les avantages de webapp2 mentionnés ci-dessus devraient être pris en compte.
0 votes
Je ne connais pas bien webapp2, mais j'utilise Flask depuis quelques mois et je l'adore. J'ai trouvé des plugins Flask qui m'ont vraiment aidé, tels que
flask-babel
pour la prise en charge de plusieurs langues, etflask-seasurf
pour la prise en charge de CSRF afin de sécuriser mes formulaires.