TITLE OF PAPER: PyWebOff: Mapping the Python Web Application Frameworks URL OF PRESENTATION: PRESENTED BY: Michelle Levesque (ml@cs.toronto.edu) REPRESENTING: CONFERENCE: PyCon 2005 DATE: Wednesday, March 23, 2005 LOCATION: GWU Cafritz Conference Center, Amphitheatre -------------------------------------------------------------------------- REAL-TIME NOTES / ANNOTATIONS OF THE PAPER: {If you've contributed, add your name, e-mail & URL at the bottom} Problem: So Many Web Frameworks, scary, intimidating Enabler: I'll write my own, that'll solve the problem When ppl keep reinventing the wheel, you block a lot of progress PyWebOff: What frameworks support what, and what are they good for? Webware, Quixote, CherryPy, Twisted, Zope, Karigell, CGI (control set) ...more cute stick figures... Start with a simple problem, Web Lending Library What is not tested: * Performance * Security * Robustness * ... The W. Richard Stevens approach to framework analysis - start from a new user perspective, write everything down, and save your final code in a public repository. Everything blogged - lots of response Not talking about Zope, Karigell or the CGI control in this talk Webware: MiddleKit - Decide on objects UserKit WebKit - All pages are subclasses of the default page * Your pages can be subclassed as well Quixote: Must conform to the Quixote-way of organizing your pages * Once you do, things work better.. :-) Best features: widgets * Fast way to create HTML forms * Provides an object which displays, and then captures the output Persistant layers: Durus Doesn't support session persistence: you do it yourself Thoughts * much cleaner code * took a lot of time to learn * Serious learning curve, but worth it CherryPy: Lightweight, compared to other frameworks Standard 'form action is method name' paradigm Has a nice templating system, if you like that sort of thing Very clean Thoughts * Intuitive system * Template system: cool * Potential lack of documentation Twisted + Nevow: The uber-framework, way overkill perhaps for just a web framework Useful for Practical Internet Groupware Powerful, complicated, templating system * (nbastin) Probably worse than just using XSLT directly General issues with Python web frameworks Lack of support * IRC (not good way of giving support) * mailing lists (better, but still not the best) * documentation assumes you already know what they're talking about * not new-user friendly Next steps: * Finish the analysis of the frameworks still on the list * Add more frameworks to the list... * Need to have 'official' frameworks, or some sort of stamp that indicates the one with the best documentation and active development * Put more effort into the winners * Do Not create more frameworks * Need to reduce the framework set to a few simple buckets * Speed, heavyweight, simple, etc. Q & A Points: * Difficult to install a lot of frameworks, also, tutorials are good, but should not be relied on * Is it appropriate to add a web framework to the standard library? * no, but have some frameworks that are "Python-sponsored" * Book promo spam for "Python Cookbook" * Is there a mature Python alternative to Rails? * no single answer * Is there one that interfaces well with a database (SQL) * Don't know how RoR does it, but they do all at least interface with a database * Sean kills the Q&A period -------------------------------------------------------------------------- REFERENCES: {as documents / sites are referenced add them below} ml@cs.toronto.edu (Michelle Levesque) http://pyre.third-bit.com/pyweb (PyWebOff site) -------------------------------------------------------------------------- QUOTES: -------------------------------------------------------------------------- CONTRIBUTORS: {add your name, e-mail address and URL below} Nick Bastin (nick.bastin@gmail.com) Linden Wright (lwright@mac.com) Nate Silva (nate@northwe.st) -------------------------------------------------------------------------- E-MAIL BOUNCEBACK: {add your e-mail address separated by commas } -------------------------------------------------------------------------- NOTES ON / KEY TO THIS TEMPLATE: A headline (like a field in a database) will be CAPITALISED This differentiates from the text that follows A variable that you can change will be surrounded by _underscores_ Spaces in variables are also replaced with under_scores This allows people to select the whole variable with a simple double-click A tool-tip is lower case and surrounded by {curly brackets / parentheses} These supply helpful contextual information. -------------------------------------------------------------------------- Copyright shared between all the participants unless otherwise stated...