This repository hosts the source code for the "Intermediate Django - Building Modern, Scalable, and Maintainable Web Applications" video tutorial series published by O'Reilly Media. The videos themselves are available for purchase here: http://shop.oreilly.com/product/0636920040903.do
The series walks you through building a web application using Python 3.4 and Django 1.8. It also includes integrating Celery for background tasks. Throughout the lessons you'll see both how to write the code but also how to test it. Included are lessons on good practices for code quality including using static analysis tools for Python and JS and measuring test coverage.
This is all of the example code used during the video series. It does not include the database files with the sample data. If you've purchased the videos then this repo roughly equates to the "Working Files" provided with each video.
The various lessons are tagged in the repo and linked below. The chapters may be rearranged from the order in which they are listed here in the final publication.
- Prerequisites and Environment Setup
- Custom Managers
- Custom Querysets
- Aggregation and Annotation
- Customizing Admin Listing
- Adding New Admin Filters
- Adding New Admin Actions
- Testing Admin Customization
- Writing a Management Command
- Adding Command Options and Flags
- Testing Managament Commands
- Running Management Commands with Cron
- Building a Base Template
- Static Files Configuration
- Template Inheritance Patterns
- Unit Testing Views
- JSON Views
- Client-Side Requests with jQuery
- Passing Varibles from Django to the Client
- Filtering with django-filter
- Migration Basics
- Multi-Step Migrations
- Updating Code Base for Model Adjustments
- Squashing Migrations
- Form Views
- Form Rendering
- Multiple Model Updates with Formsets
- Testing Forms
- Built-In Views - Login and Logout
- Built-In View - Password Change
- New User Creation
- Celery Setup
- Creating a Task
- Running Periodic Tasks
- Monitoring Celery
- Environment Settings
- Logging Configuration
- Security Related Settings
- Checking Test Coverage
- Static Python Analysis with Flake8
- Static JS Analysis with JSHint
Since this repository is tied to the video publication, I can't accept any feature changes or updates which might stray from the original video content. If you've found something that you think is a bug then you are free to open an issue for it.
The content of the videos themselves are copyright to O'Reilly Media and cannot be redistributed. However, this example source code is licensed under the BSD license included in the repository. You are free to copy, redistribute, and modify this source within the terms of the license.