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:
http://zootlinux.blogspot.com/2011/10/october-newlug-presentation-python-web.html
2. What I'll Go Over
● Frameworks
● Micro Frameworks
● Templating languages
● The state of Python 3 and the web
● NOSQL
3. Frameworks Covered
● Django
● Pyramid
● A brief mention of Pylons and Turbogears
● Bluebream
● web2py
● Flask(micro-framework)
● Bottle
4. A note about WSGI
"WSGI is the Web Server Gateway Interface. It is a
specification for web servers and application servers to
communicate with web applications (though it can also be used
for more than that). It is a Python standard, described in detail
in 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. Django
● "Full stack" framework
● it's 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. 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. Turbogears and Pylons
● "Full stack" frameworks
● The pylons project has moved to using pyramid as it's
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. 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. 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. Flask
● micro framework
● no built-in ORM support
● uses routes
● very simple
● fast development
● not as robust tools
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. Python 3 and the web
...
Some blockers:
● Webob
● PIL