
Introduction and Roadmap
Explore Django basics, including apps and projects, reusable components, the explicit over implicit philosophy, and request processing with middleware, views, and templates using a development server.
Build a Django app that returns hello notes, enables login and a notes dashboard, and exposes a REST API using Django REST framework.
Learn to run the Django development server, configure a simple urls and view, and render a hello notes template with a username in context.
Learn to build reusable web pages with Django templates using inclusion and inheritance, plus loops, conditionals, filters, and custom tags, and create server-side validated forms and a login page.
Create a Django login form using an email-based username and a password widget. Render it in a template, validate post data with validation, and display errors or redirect on success.
Learn to authenticate and manage user sessions in Django by validating username and password, creating or retrieving users, logging in, protecting dashboard with a login required decorator, and logging out.
Learn to generate and save notes using Django model forms, automatically setting the owner to the logged-in user, and secure the dashboard with login required.
Explore representational state transfer (rest) and its stateless, cacheable principles, and expose a Django model as a restful resource with Tastypie, including setup, endpoints, and idempotent behavior.
Explore Django's query language features, including complex filters, starts with, limit, and aggregate operations; master template inheritance, static file handling, and robust security and caching mechanisms.
What does a killer website, an amazing smartphone app and a futurustic plugin for Google Glass have in common?
A Back End
Without a back-end all you are left with is an empty skeleton of a UI. Among other things, a back-end let's you:
Django is a Python-based web framework that provides a vast amount of plumbing to build a web-backend so that you don't have to do it. This will allow you to focus on building more and better features into your application without worrying about infrastructure and plumbing.
Why this class?
This is a project based class and will take a practical approach towards learning Django. By the end of the class you will be comfortable with the following:
The final project will be writing a Personal Notes app. This app will expose you to many basic patterns which will be applicable to a wide variety of Django Apps.
Although this is a beginner class I plan to introduce a few advanced Django concepts in theory so as to give you an idea of the power of the Django framework.
This will also prepare you for job interviews that may ask you Django related questions.
Why Django?
Who should take this class
Anyone who wants to get started with web development and Django as well as get a peek into the more advanced features can take this class. Here are a few categories I can think of:
Whether you fit into one of the above categories or not, I encourage you to enroll for this class. Don't let a lack of experience with Python or web-frameworks discourage you. The class does not require a lot of experience with Python or web frameworks - a desire to learn will go a much longer way!