Python Web Programming

Learn to build web-based Python applications from the ground up

This five day class emphasizes network-based programming and web applications, how they work and how to program them in Python. Explore the underlying principles and their expression in the Python libraries. Learn contrasting approaches in creating applications: programming with the low-level libraries versus using highly integrated frameworks.

What To Expect

This one-week course will cover the fundamental concepts of networked programming in Python. You'll learn everything, starting from the protocols that power the internet and the sockets that enable communications between processes and machines, right up to the full-stack frameworks that enable developers to build rich applications efficiently.

Along the way, you'll learn through a combination of lecture and activity. Historical information will be combined with exercises designed to help you learn the Pythonic way to create programs that interact with each-other across networks. Each module will include reading lists for more information and ideas for projects you can use to help cement the lessons you learn after the the class is over.

What This Workshop Is

The goal of the course is to give students a solid grounding in the fundamental underpinnings of network programming. In addition, you will gain a basic understanding of a broad range of Pythonic tools and learn to choose the right tool for a given task.

What This Workshop Is Not

There are other training courses available that will teach you a web framework in depth. This is not one of them. You will learn basic usage for the frameworks covered as well as the choices and compromises that shape them.

You Will Learn

  • The TCP/IP stack
  • The sockets module
  • Communications protocols like SMTP, IMAP and HTTP
  • Network API tools like XML-RPC, SOAP and REST
  • Dynamic network applications using CGI and WSGI
  • Data persistence models including the filesystem, SQL databases and Object Stores
  • Template systems like Jinja2 and Chameleon
  • Framework programming, including Flask, Django and Pyramid

You Will Build

  • A fully functional, basic HTTP server
  • A "mashup" application combining several online APIs
  • Three iterations of a simple web application using Flask, Django and Pyramid

You Will Need

Basic Python Programming Skills
This is not a beginning Python course. A basic understanding of the fundamental syntax and structures of Python will be required.
Basic Knowledge of HTML
You should know enough to be able to create a page with headers, lists and forms
Working Knowledge of a Text Editor
You must to be able to create, edit, save and delete files quickly and comfortably
Working Knowledge of the Command Line
You must be able to change directories, run commands and manage files (create, copy and remove)
A Network Enabled Laptop Computer
We will be fetching resources from the network regularly. Wired network access is available in the room, but you will need to be able to troubleshoot any connection issues for your own machine
Python 2.7 or 3.x
This course can be taught in either Python 2 or Python 3.  Individual iterations of the class will use only one version, however.