This class assumes that you already have some basic programming experience
in another language such as C, C++, Java, Perl, Ruby, PHP,
etc. However, no experience with Python or Django is assumed.
- $1995 (Practical Python + Django)
- $1495 (Practical Python Only)
- $695 (Introduction to Django Only)
- A printed copy of the course notes.
- A copy of the "Python Essential Reference, 4th Ed."
- Breakfast and lunch at local restaurants
[ Register |
Practical Python Programming Plus Django
Instructors : David Beazley, Chad Glendenin and Rodrigo Guzman
A course that combines material from the Practical Python
Programming course with a two day hands-on introduction
to Django. The first three days are devoted to learning the basics of the Python
language. For the Django component, Dave is joined by Chad Glendenin
and Rodrigo Guzman, the founders of PyBrew, a Chicago-area Django
development company. Students will go through the basics to the
not-so-basics of putting together a Django web application. Topics
include databases and the data-model abstraction layer, processing web
requests in the view layer, handling user interaction through forms,
reusing pluggable Django applications, the template language, project
organization, best practices, and tricks of the trade. This might be
the ultimate course for anyone who wants to learn both Python and
Django all at once.
Already know Python or Django? If you wish, you also can sign up for
just the "Practical Python Programmimg" or "Introduction to Django"
course sections separately.
About the Instructors
David Beazley is the author of the
Essential Reference and member of the Python Software
Foundation. David has been actively involved with the Python
community since 1996 and is the guilty party responsible for
Swig, a compiler for integrating
Python with C/C++. He currently
operates Dabeaz LLC, a company
that specializes in Python training and software development.
Chad Glendenin is the co-founder of Pybrew, LLC, a Django
web-development company. He has used Django to build front-ends to
large scientific-simulation databases, content-management systems and
rapid prototypes of web applications for clients, and several
web-based products for teachers and scientists. Chad has taught Python
classes at the University of Chicago, where he was also an advocate of
high-level tools like Django to improve productivity.
Rodrigo Guzman is the co-founder of Pybrew, LLC, a web-development
company specialized in developing web applications with django. He
has used django for a variety of projects, including rapid-prototyping
for clients. In a previous life Rodrigo was a physics graduate
student at Northwestern University, where he's taught introductory
physics labs to over 300 students over the past four years. Rodrigo is
Detailed Course Outline
Practical Python Programming (3 days)
Introduction to Python.
An introduction to the Python programming language. Covers details of
how to start and stop the interpreter and write programs. Introduces
Python's basic datatypes, files, functions, and error handling.
Working with Data.
A detailed tour of how to represent and work with data in Python.
Covers tuples, lists, dictionaries, and sets. Students will also
learn how to effectively use Python's very powerful list processing
primitives such as list comprehensions. Finally, this section covers
critical aspects of Python's
underlying object model including variables, reference counting, copying,
and type checking.
Program Organization and
More information about how to organize larger programs into functions. A major focus
of this section is on how to design functions that are reliable and can be easily
reused in other settings. Also covers technical details of functions including
scoping rules, documentation strings, and exception handling.
Modules and Libraries.
How to organize programs into
modules and details on using modules as a tool for creating extensible
programs. This section concludes with a overview of some of the most
commonly used library modules and instructions on how to install third
party library modules. Some of the standard library modules covered
in this section include those related to the file system and file
handling, subprocesses, regular expressions, XML, data serialization,
and database access.
Classes and Objects.
An introduction to object-oriented
programming in Python. Describes how to create new objects, overload
operators, and utilize Python special methods. Also covers some basic
principles of object oriented programming including inheritance.
Inside the Python Object Model.
A detailed look at how
objects are implemented in Python. Major topics include object
representation, attribute binding, inheritance, memory management, and
special properties of classes including properties, slots, and private
Testing, Debugging, and Software Development Practice.
This section discusses many isses that are considered important to
Python software development. This includes effective use of
documentation strings, program testing using both the doctest and
unittest modules, and effective use of assertions. The Python
logging, debugging, and profiling modules are also described.
Covers the iteration protocol, generators, and
generator expressions. A major focus of this section concerns the use
of generators to set up data processing pipelines--a particularly
effective technique for addressing a wide variety of common systems
programming problems (e.g., processing large datafiles, handling
infinite data streams, etc.).
Text I/O Handling.
More information on text-based I/O.
Topics include text generation, template strings, and Unicode.
Some Advanced Topics.
A variety of more advanced
programming topics including variable argument functions, anonymous
functions (lambda), closures, decorators, static and class methods,
Introduction to Django (2 days)
A review of the web's client-server architecture and a conceptual overview
of the Django framework and its Model-View-Control (MVC) design pattern,
followed by a tutorial on setting up your own Django project. Includes
setting up a database and static media (such as images and CSS), setting up
Django templates for generating HTML, and an introduction to some
third-party add-ons for development and debugging.
Django's Model Layer.
An introduction to Django's Model abstraction, including the relationship
between Django models, Python classes, and database tables. A major focus is
on how to add and edit objects in the database, and how to perform queries
to locate specific objects. Also includes a behind-the-scenes look at how
Django interacts with SQL databases and useful tips on building models for
real-world apps (e.g., the use of "slugs," and the difference between
"blank" and "null").
Django's Admin Interface.
Learn how to activate and use Django's Admin, an automatically generated,
web-based user interface for creating, editing, and deleting your model
Views and URLs.
A look at how Django processes URLs and uses them to dispatch web requests
to view functions, and an introduction to writing those view functions.
Includes an introduction to Django's template processing for producing HTML
and an introduction to Django's generic views, which save time when writing
view functions. Also includes an overview of how Django processes an
incoming web request and produces a response for the browser, from end to
An overview of how Django implements user sessions, authentication (knowing
who the user is), and authorization (know what the user is allowed to do).
Covers how to log users in and out and how to use authentication in
templates and in view functions to implement identity and security features.
Includes an overview of user profiles, permissions, and auth changes in
A review of automated testing for Python programs, an overview of testing
for web-based software, and a look at the facilities Django provides for
testing web applications. Covers Django's testing commands, unit-test
classes, fixtures, and the test client.
Views and Forms.
A detailed look at Django's form objects and facilities for processing HTML
forms. This section also returns to the view functions from section 4 and
covers them in more depth. Covers object-oriented programming concepts
applied to HTML forms, Django's Form parent class, how to work with form
objects, and how to process forms in view functions. Includes a introduction
to form validation and to Django ModelForms.
Contributed and Third-party Apps.
Covers Django's Messages framework, support for sending email, signing up
new users with the django-registration module, and adding tagging support to
arbitrary models with the django-tagging module.