- Django Overview
- Django is a framework
- Frameworks VS Packages
- What can it do?
- What are the alternatives?
- Getting Started with Django
- Sites and Apps
- Shared Configuration
- Minimal Django layout
- Built-in Flexibility
- Using Cookiecutter
- Why Cookiecutter?
- Cookiecutter Features
- Creating a project
- Creating an app
- Customizing Cookiecutter
- Creating models with Django ORM
- Defining Models
- Related Objects
- SQL Migration
- App Configuration
- Accessing Models
- Login for Nothing and Admin for Free
- Setting up the admin user
- Running the admin site
- Tweaking the admin interface
- Changing the admin index page
- Basic Views (AKA Controllers)
- What is a view?
- Http Response
- URL Route Configuration
- Shortcut: get_object_or_404()
- Working with Templates
- About templates
- Django template syntax
- Static files
- Loading templates
- The URL tag
- Shortcut: template.render()
- Querying the Models
- Query Sets
- Field lookups
- Chaining filters
- Slicing Query Sets
- Related Fields
- Q objects
- Enhancing Models
- Custom Methods
- Complex Relationships
- Overriding Standard Methods
- Forms
- Forms Overview
- GET and POST
- The Form Class
- Processing the form
- Widgets
- Validation
- Forms in templates
- Beyond the basics
- Debugging
- Printing to the console
- Django debug page
- Reading Django logs
- Django debug toolbar
- Class-based Views
- About Generic Views
- Types of Generic Views
- Default Generic Views
- Class-based Generic Views
- List and Details of Views
- User Authentication
- Authentication VS Authorization
- Configuring Users
- Permissions
- Groups
- Session Management
- Enabling sessions
- Types of session backends
- Session Cookies
- Accessing sessions from views
- Migrations
- Managed VS Unmanaged Tables
- Handling Schema Changes
- Using Make Migrations and Migrate
- Tweaking Migrations
- Migrating Data
- Advanced Configuration
- Django Settings Architecture
- Typical Configuration
- Using 12 Factor Config
- Security Considerations
- Serving Data with a RESTtful Interface
- The Django REST Framework
- Serialization
- Requests and Responses
- Function-based Views
- Class-based Views
- Static File Management
- Types of Static Files
- Configuring Access
- Namespacing
- Templates
- Deploying from outside Django
- Automated Testing
- Why Create Tests?
- When to Create Tests?
- Using Django’s Test Framework
- Using the test client
- Running Tests
- Checking Code Coverage
- Using the Cache
- Types of Caches
- Setting up the Cache
- Per-site and Per-view caching
- Low-level API
- Cache Security
- Creating Reusable Apps
- Packaging
- Choosing an Appropriate Name
- Deploying
- Using Setup Tools
- Documentation with Sphinx
- Description of Sphinx
- Restructured Text
- Configuring Sphinx
- Creating Doc Files
- Using Auto doc
- Generating Docs