Beginning Webservices with Python
Proposed by Jeff Hammel
Python (http://www.python.org) is a powerful, high-level programming language that is easy to learn and easy to make highly customizable web-sites and play with web technologies. While for many enterprise-class sites, a complicated stack of technologies and integrated web frameworks may be required to achieve complex goals, using python and WebOb (http://pythonpaste.org/webob/) -- a basic request/response object -- allows a first-principles approach to understand the HTTP protocol and making a wide variety of web sites in a flexible manner.
The course will center on using python and associated technologies to explore how HTTP and HTML works. Only the basics will be covered, but this should be enough to point newcomers with the predisposition towards making and debugging more complex sites. Students will create web services that include hosting static content, persisting data using the filesystem, middleware, generating dynamic server responses, and using a template language (genshi). The basics of REST and good architecture will be introduced covering the basics of how to view programming and good architectural design.
Student Prerequisite Knowledge
A knowledge of HTML is assumed. Other than that, it should be pretty open to anyone comfortable with HTML.
The course software should be buildable with a python installation including setuptools. virtualenv is highly recommended to isolate student projects.
The core technologies used will be python, WebOb, the python paste webserver, genshi. jquery will be touched on at the end of the course.