Learning Path: Django: A Practical Approach to Master Django
4.3 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
127 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Path: Django: A Practical Approach to Master Django to your Wishlist.

Add to Wishlist

Learning Path: Django: A Practical Approach to Master Django

Ease the process for creating websites with Django
4.3 (9 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
127 students enrolled
Created by Packt Publishing
Last updated 7/2017
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 13 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Get a complete hands on with a practical approach used in the course
  • Provides real life scenarios for understanding the concepts
  • Understand the class based views in Django
  • Learn to build custom middleware using Django
  • Reinforce the concepts by a project at the end of the course
View Curriculum
  • Basic knowledge of Django is required.

Django is a high-level Python-based framework that encourages rapid development and provides a clean, sensible design. Application development with Django can be summarized in these words: Easy Creation: Scalable Application.

The primary goal of Django is to ease the creation of complex and database-driven websites. Django supports the principle of not repeating yourself by providing support for reusability and pluggability. Some of the well-known companies using Django include Public Broadcasting Service (PBS), Instagram, Mozilla, and so on.  If you are a web developer knowing basics of Django and want to learn advanced features of Django, then this Learning Path is for you.

In this course, you will have an in-depth knowledge regarding various advanced features used by Django such as using class-based views, creation of custom middlewares, and templates. You will also get acquainted with some features like creating APIs and caching. You will also get a clear understanding of the topics with a lot of examples and practice. Finally you will gain knowledge of how Django projects are made by creating Django projects.

By the end of this Learning Path, you will be able to create advanced Django websites with the help of illustrative examples and practice.

About the Author:

For this course, we have combined the best works of this esteemed author:

Antonio Mele holds an MSc in Computer Science. He has been developing Django projects since 2006 and leads the django Spanish Django community. He has founded Zenx IT, a technology company that creates web applications for clients of several industries. Antonio has also worked as a CTO for several technology-based start-ups. His father inspired his passion for computers and programming.

Matthew Nuzum has been developing web applications since 1999 and worked for several start-ups including Canonical, makers of Ubuntu, as well as Fortune 500 companies. He has a passion for helping others learn new technologies and has written numerous tutorials and help documents as well as running a web-focused user group based in his hometown of Des Moines.

Kevin Veroneau is a very active Python and Django developer who has worked for many start-ups, has an active Python blog, and has worked on a magnitude of Python projects over the years.

René Fleschenberg is a web developer/sysadmin hybrid with a focus on back-end development in Python and Django. He has been working with Django for about 5 years and has built a variety of Django-based websites. He co-maintains an open source Django-based e-commerce solution.

Who is the target audience?
  • A programmer or an enthusiast wanting to learn about the high-level Python framework to easily create scalable and efficient web applications.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
120 Lectures
Django by Example
78 Lectures 09:12:39

This will give brief introduction to Entire course

Preview 04:47

Learn to install Django for local development.

Installing Django

Learn to build basic steps to complete blog site.

Creating Your First Project

Define the initial data models for our blog.

Designing the Blog Data Schema

Learn to create a simple administration site to manage blog posts.

Creating an Administration Site for Your Models

Learn how to retrieve information from the database and interact with it.

Working with QuerySet and Managers

We learn to create our application views and then we will define an URL pattern for each view

Building List and Detail Views

The ability to add templates to display posts in a user-friendly way.

Creating Templates for Your Views

Learn to import the Django paginator classes and modify the post_list view.

Adding Pagination

Define your views as class methods and provide base view classes for this.

Using Class-Based Views

Our objective in this video is to allow users to share posts by sending them by e-mail. To achieve this our video will help us to create forms and handle them in views.

Preview 05:48

In this video we will send emails with django and render forms in templates

Sharing posts by E-Mail

In this video we will build the base for creating a comment system. For that we will create the comments and the functionality to manage the comments for a post

Creating a Comment System

This video is the continuation of the previous one. Here we will cover how to Add comments to the post detail template.

Adding Comments to the Post

Ability to create a way to tag our posts

Adding Tagging Functionality

Learn to build a functionality to display similar posts by the number of tags that the user share

Retrieving Posts by Similarity

The ability to create a template of tags and filters.

Preview 10:57

Learn to generate sitemaps for your site.

Adding a Sitemap to Your Site

Learn to create sitemaps using the site's framework.

Creating Feeds for Your Blog Posts

The ability to perform case-insensitive lookups using the icontains filter.

Adding a Search Engine with Solr and Haystack

Learn to create a social application that will allow users to share images they find on the Internet.

Preview 02:45

Learn to build authentication framework that can handle user authentication, sessions, permissions, and user groups.

Using the Django Authentication Framework

The ability to change users passwords.

Password Authentication

Learn to build a view to allow visitors to create a user account.

User Registration and User Profiles

Learn to build an authentication through backend by using different sources.

Building a Custom Authentication Backend

The ability to add social authentication to your site using services such as Facebook, Twitter, or Google.

Adding Social Authentication to Your Site

Learn to allow users to bookmark and share images they find in other websites and share them in our site.

Preview 05:21

Learn to allow users to bookmark images from external websites.

Posting Content from Other Websites

The ability to create a simple detail view for displaying an image that has been saved into our site.

Creating a Detail View for Images

Learn to display the original image in the detail page.

Creating Image Thumbnails Using Sorl-Thumbnail

Generate AJAX actions to our application.

Adding AJAX Actions with jQuery

The ability to restrict our AJAX views to allow only requests generated via AJAX.

Creating Custom Decorators for Your Views

The ability to use AJAX pagination to build infinite scroll functionality.

Adding AJAX Pagination to Your List Views

Learn to build a follower system into our project which users will be able to follow each other and track what other users share on the platform.

Preview 06:30

Learn to build an activity stream application so that every user can see recent interactions of users he follows.

Building a Follower System (Continued)

Learn to save the actions performed by users on the website.

Building a Generic Activity Stream Application

Learn to denormalize data from our Image model and use Django signals to keep the data updated.

Building a Generic Activity Stream Application (Continued)

Learn to denormalize data from our Image model and use Django signals to keep the data updated

Using Signals for De-normalizing Counts

Learn how Redis can be used for building new functionality into our project.

Using Redis for Storing Item Views

In this video We are going to create a ranking of the most viewed images in our platform

Using Redis for Storing a Ranking

This video will enable you to browse through a product catalog and add products to a shopping cart. Finally, you will be able to check out the cart and place an order.

Preview 13:22

After building the product catalog, the next step is to create a shopping cart that will allow users to select the products that they want to purchase. So, What are we waiting for? Let's do it!

Building a Shopping Cart

Now that we have a Cart class to manage the cart, we need to create the views to add, update, or remove items from it. We need to create these views. So, let's see how to do it!

Creating Shopping Cart Views

This video will let you create a context processor which will enhance the efficiency of your shopping cart and give a better user interaction.

a Context Processor for the Current

When a shopping cart is checked out, you need to save an order into the database. Orders will contain information about customers and the products they are buying. For this, you need to register customer orders. This video will show you how to achieve this.

Registering Customer Orders

In many situations you might want to return a response to the user as quickly as possible and let the server execute some process asynchronously. Using Celery, you can create asynchronous tasks easily, let them be executed by workers as soon as possible and schedule them to run at a specific time. Let's do it right now!

Launching Asynchronous Tasks with Celery

Learn to integrate PayPal, which is one of the most popular payment gateways.

Preview 13:42

Learn to get a notification which is instantly sent to your server when the gateway processes a payment.

Payment Notifications

Learn to customize the administration site to be able to export orders to CSV files.

Exporting Orders to CSV Files

Learn to customize the administration site beyond what is possible through configuration of ModelAdmin, creation of admin actions, and overriding admin templates.

Extending the Admin Site with Custom Views

Learn to extend an admin template which you need to know its structure and identify existing blocks.

Generating PDF Invoices Dynamically

Learn to create a model to store the coupon code, a valid time frame, and the discount to apply.

Preview 15:22

Learn to mark strings for translation both in Python code and in your templates.

Adding Internationalization and Localization

Learn to translate literals in your Python code.

Translating Python Code

Learn to add template tag to translate string in order to use the translation template tags.

Translating Templates

The ability to edit translations using the same interface as the Django administration site.

Using the Rosetta Translation Interface

Learn to provide search engines with URLs that will rank better for each language.

URL Patterns for Internationalization

The ability to add a language selector to our site.

Allowing Users to Switch Language

Learn to provide a solution for translating models out of the box.

Translating Models with django-parler

Generate a separate database table for each model that contains translations.

Translating Models with django-parler (Continued)

Learn to create a simple yet powerful recommendation engine that suggests products that are usually bought together.

Building a Recommendation Engine

Learn to build a flexible Content Management System (CMS) that allows instructors to create courses and manage their contents.

Preview 01:35

Learn to build e-Learning platform which will offer courses in various subjects.

Building the Course Models

 to create a Content model that represents the module's contents.

Creating Models for Diverse Content

The ability to create your own model fields to store custom data or alter the behavior of existing fields.

Creating Custom Model Fields

Learn to build a content management system (CMS) which will allow instructors to create courses and manage their content.

Creating a Content Management System

The ability to create a group for instructor users and assign permissions to create, update, and delete courses.

Working with Groups and Permissions

Learn to work with multiple forms on the same page.

Using Form-sets

Learn to create a view that handles creating or updating objects of any content model.

Adding Content to Course Modules

Learn to display all modules for a course and list contents for a specific module.

Managing Modules and Contents

Learn to launch an AJAX to store the new module order.

Reordering Modules and Contents

Learnt to list all available courses, optionally filtered by subject.

Preview 05:26

Learn to create a new application to add student details.

Adding Student Registration

Learn to display the courses the students are enrolled in.

Accessing the Course Contents

The ability to use cache framework in terms of processing than serving a static website

Using the Cache Framework

The ability to perform the cache template fragments to access the database.

The Process of Caching

Learn to create an interface for other services to interact with your web application.

Preview 14:40

The ability to identify the user performing the request.

Handling Authentication
Mastering Django Web Development
22 Lectures 59:55

This video will provide an overview of the course.

Preview 02:27

Generic class-based views provide a lot of functionality. Let's take a look at how you can easily extend them to create your own custom solutions.

Extending Class-based Views

The built–in, generic class-based views are actually made up of many reusable mixins. Take a look at how you can use the same technique to add your own behaviors into your class-based views.

Using Mixins

You don't have to use generic class-based views. If you plan to override much of the built-in behavior or just don't need it, then you can start out with a simpler class, such as view.

Custom Class-based Views

You can create a single class-based view that can handle all of the operations for a set of data. These are sometimes called switchboard classes, and they can help make your code easier to maintain.

Creating a Switchboard View

Code that is used in many views can be moved into middleware, allowing it to operate either before or after your view code is executed.

Preview 02:30

Middleware classes are not fancy; they simply have one or more methods that correspond to one of the five predefined hooks available. Let's take a closer look at them here.

Creating a Custom Middleware

Showing users exceptions is unprofessional and may be a security problem. Let's examine an easier way to create middleware that catches and responds to unhandled exceptions.

Exception Handling Middleware

In this video we will explore the possibility of creating custom filters to make frequently used behaviors easily reusable for everyone on our team.

Preview 03:19

If you need a functionality that is too sophisticated for a filter, it should be a template tag. These are of several kinds, such as simple_tag for basic functionality and a template inclusion tag to bring in entire templates.

Creating Custom Template Tags

With the growing popularity of Angular.js and similar tools, more applications need to provide a RESTful API. Tastypie is a Python module that does most of the work for us. Let's check it out.

Preview 03:40

Sometimes you want to modify the data before it goes out to the API. Tastypie makes it easy to add or customize the data returned from the API.

Complex Queries with Our API

Not all applications work with a read-only API. Sometimes, you want full CRUD support from your API. You need to add an authentication step before you make this functionality available. Fortunately, Tastypie does all of this for us.

Authentication and CRUD Support

Sometimes, you want to combine data from different models. It's not hard to do this with Python, but generic relationships allow Django to do this for you.

Preview 02:09

Have you wished you could add or edit many records to the database at once? With only a few lines of code, you can add this capability to your application.

Formsets for Data Management

Django's ORM works fine when your filters are combined using the AND operator. If you want to perform more complicated queries, you should use the Q function, which just gives you more flexibility with your logic.

Advanced Queries with Q()

Is your application running slow? You may be performing expensive operations more often than necessary. We can use low-level caching operations to have tight control over our application's performance.

Preview 03:45

Do you have data that is accessed on many views? We already know we can create middleware to reduce duplication, but why not add caching at to middleware to also speed up performance?

Caching with Middleware

If your cache needs are simpler, you can perform caching at the template level. This can provide a tremendous improvement in performance and is easy to use.

Using the Template Cache

Do you frequently perform the same query and filter operation in multiple views? Avoid duplication using model managers.

Preview 02:05

You may have a similar logic in multiple areas of the site to deal with inserting data. You can create a manager function that accepts your data as a parameter and centralizes your insertion logic.

Using a Model Manager to Create New Objects

Do you perform regular maintenance on your application? You can simplify periodic cron tasks by creating custom manage.py commands.

Creating manage.py Commands
Django Projects: E-Learning Portal
20 Lectures 02:39:24

This video will give an overview of entire course.

Preview 02:25

The aim of this video is to show you how to set up your system for Django development.

Installation and Setup

The aim of this video is to learn about Django Apps and views.

Preview 07:18

The aim of this video is to learn about the Django templates.


The aim of this video is to look at the models and how to store data in SQL database.


The aim of this video is to see how models, views, and templates work together to create useful application.

Models, Views, and Templates

The aim of this video is to use Django forms to validate the input from the user.


The aim of this video is to discuss about the Django users and admin interface.

Preview 09:02

The aim of this video is to create relationships between different models.


The aim of this video is to extend the knowledge about Django ORM using Querysets and Managers.

Querysets and managers

The aim of this video is to extend our database models to cover some realistic use cases.

Extending our Models

The aim of this video is to write some complex views to process the e-learning data.

E-learning Views

The aim of this video is to implement a functionality for showing the test results.

E-learning views (continued)

The aim of this video is to extend the templates and make them more pretty.

E-learning Templates

The aim of this video is to learn about Authentication in Django.


The aim of this video is learn about class based views and how to use them in Django.

Preview 08:53

The aim of this video is to understand about the Django REST Framework package

Django REST framework

The aim of this videos is to extent the API to allow users to submit data for the tests.

Django REST Framework (continued)

The aim of this video is to learn how to create a production environment to serve our application to the public.

Preview 04:51

This video will teach you how to prepare your application for deployment on Heroku.

Preparing your application
About the Instructor
Packt Publishing
3.9 Average rating
8,109 Reviews
58,434 Students
686 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.