Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python web frameworks


Published on

Python web frameworks presentation by Nathan VanGheem.
Material covered:
- The major frameworks around and differences between them
- Micro frameworks
- Templating languages
- The state of Python 3 and Python Web Technologies
- Brief ditty on NoSQL with MongoDB
- How to get started

The presentation video and sample code is available here:

Published in: Technology
  • Be the first to comment

Python web frameworks

  1. 1. Python Web TechnologiesAn overview of the various Python web technologies
  2. 2. What Ill Go Over● Frameworks● Micro Frameworks● Templating languages● The state of Python 3 and the web● NOSQL
  3. 3. Frameworks Covered● Django● Pyramid● A brief mention of Pylons and Turbogears● Bluebream● web2py● Flask(micro-framework)● Bottle
  4. 4. A note about WSGI"WSGI is the Web Server Gateway Interface. It is aspecification for web servers and application servers tocommunicate with web applications (though it can also be usedfor more than that). It is a Python standard, described in detailin PEP 333." ● Provides a way for reusable web components to easily work together through this specification ● Also allows you to easily deploy web application that follow this standard(gunicorn, mod_wsgi, uWSGI, etc)
  5. 5. Django● "Full stack" framework● its own tightly integrated built-in ORM● built-in authentication strategy● nice, auto-"magic" backend● one monolithic package● no interaction really with other communities● great for CMS-like applications● URLs are generated from specifying regular expressions that map to python functions
  6. 6. Pyramid● database backend agnostic but has supporting packages for sqlalchemy, zodb, mongodb.● no authentication policy built-in but has supported add-ons● great authorization policy● small footprint, fast, well tested and very well documented● VERY pluggable framework● URL pattern can use traversal and routes● "no opinion"● add-ons can be described as "opinions" for the framework.● demonstrating "khufu" opinion(SQLAlchemy, Jinja2, traversal)● built using zope technologies with the idea of rewriting all the bad of zope
  7. 7. Turbogears and Pylons● "Full stack" frameworks● The pylons project has moved to using pyramid as its baseline.● turbogears and pylons already share a good deal● soo... Pyramid, Pylons and Turbogears pretty much share a lot of the core technologies and just have different opinions about what to do with them after that● Turbogears has the most "opinions"
  8. 8. Bluebream● entreprisey● component-driven, interfaces, adapters, etc● zodb● works with other database adapters(have sqlalchemy support)● pyramid is built off of a lot of these components● uses buildout● where zope is now today● big stack, lots of dependencies
  9. 9. web2py● FULL stack● built-in ORM● inspired by ruby on rails(so modules and method name map to urls)● admin interface with support of TTW development● coding by convention● not very pythonic● lots of "magic" going on
  10. 10. Flask● micro framework● no built-in ORM support● uses routes● very simple● fast development● not as robust tools
  11. 11. Bottle● Micro framework● 1 file for whole thing● not a very good built-in templating engine● no built-in ORM● initial look will seem a lot like flask
  12. 12. Python 3 and the web...Some blockers: ● Webob ● PIL
  13. 13. NOSQL notes(mongodb)● json-style storage● for massive "web scale"● sharding, replication, file storage● schemaless●● mongokit - > j = { name : "mongo" }; {"name" : "mongo"} > t = { x : 3 }; { "x" : 3 } >; >; > db.things.find(); { "_id" : ObjectId ("4c2209f9f3924d31102bd84a"), "name" : "mongo" } { "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }>
  14. 14. Questions...