The ‘Build a Backend REST API with Python & Django – Advanced’ course will teach you how to create a backend REST API using Python, Django (3.2), Django REST Framework (3.12), Docker, GitHub Actions, PostgreSQL, and test-driven development. This course will help to establish the groundwork for your knowledge base and offer you the tools to enhance your abilities with some of the most in-demand programming languages available today, whether you’re a freelance programmer, a tech entrepreneur, or just getting started constructing backends.

An API is one of the most important elements for every tech-based organisation. Thus it is essential for developers to have the ability to construct APIs from scratch. Without a backend REST API, it is impossible to create a successful app. In this course, Instructor will teach how to create a sophisticated API that can create and update user profiles, modify passwords, create objects, upload images, filter and search things, and do a lot more. The course is usually available for INR 3,399 on Udemy but students can click on the link and get the ‘Build a Backend REST API with Python & Django – Advanced’ for INR 449.

Who all can opt for this course?

  • Intermediate programmers who are already familiar with Python and wish to develop their skills
  • Developers with experience in other languages who want to expand their toolkit with Python

Course Highlights

Key HighlightsDetails
Registration LinkApply Now!
PriceINR 449 (INR 3,399) 87% off
Duration23 Hours
Student Enrollment36,807 students
InstructorMark Winterbottom
Topics CoveredDjango, API Documentation, GitHub, Python, App Design
Course LevelAdvanced
Total Student Reviews6,847

Learning Outcomes

  • Use Docker to set up a local development server
  • Utilizing Test Driven Development, create a Python project
  • Constructing a REST API with cutting-edge capabilities like image uploading and viewing
  • Building a backend that will serve as the foundation for your MVP or future projects
  • Practical experience implementing best practises like PEP-8 and unit testing
  • Setup Travis-CI to perform code checks automatically

Course Content

S.No.Module (Duration)Topics
1.Introduction (10 minutes)Technical requirements
API details & Upgrades
Course structure
Getting help
2.App Design (07 minutes)App overview
Django project structure
3.Test Driven Development (03 minutes)What is Test Driven Development?
Test Driven Development Quiz
4.System Setup (02 minutes)What to install
Setup confirmation [Follow Along]
5.Project Setup (01 hour 00 minutes)New project overview
Create GitHub project [Follow Along]
Docker and Django
Define Python requirements [Follow Along]
Create project Dockerfile [Follow Along]
Create Docker Compose configuration [Follow Along]
Linting and Tests
Configure flake8 [Follow Along]
Create Django project [Follow Along]
Run project with Docker Compose [Follow Along]
Project setup overview
Quiz: Docker and Docker Compose
6.Configure GitHub Actions (30 minutes)What is GitHub Actions
Configuring GitHub Actions
Create GitHub Actions config [Follow Along]
Configure Docker Hub Credentials [Follow Along]
Test GitHub Actions [Follow Along]
Quiz: GitHub Actions configuration
7.Test Driven Development with Django (27 minutes)Testing in Django
Write a test [Follow Along]
Write a test using TDD [Follow Along]
Testing web requests
Common testing problems
Quiz: TDD with Django
8.Configure Database (01 hour 17 minutes)Database architecture overview
Add database service [Follow Along]
Database configuration with Django
Install PostgreSQL database adaptor [Follow Along]
Configure database in Django [Follow Along]
Fixing database race condition
Create core app [Follow Along]
Write tests for wait_for_db command [Follow Along]
Add wait_for_db command [Follow Along]
Database migrations
Update Docker Compose and CI/CD [Follow Along]
9.Create User Model (48 minutes)The Django user model
Design custom user model
Add user model tests [Follow Along]
Implement user model [Follow Along]
Normalize email addresses [Follow Along]
Require email input [Follow Along]
Add superuser support [Follow Along]
Test user model [Follow Along]
Summary of Create User Model
10.Setup Django Admin (30 minutes)Django admin overview
Write tests for listing users [Follow Along]
Make Django admin list users [Follow Along]
Support modifying users [Follow Along]
Support creating users [Follow Along]
11.API Documentation (20 minutes)Importance of API documentation
Auto docs with DRF
Quiz: Documentation
Install drf-spectacular [Follow Along]
Configure URLs [Follow Along]
Test Swagger UI [Follow Along]
12.Build user API (01 hour 28 minutes)User API design
Create user app [Follow Along]
Write tests for create user API [Follow Along]
Implement create user API [Follow Along]
Quiz: Authentication
Write tests for token API [Follow Along]
Implement token API [Follow Along]
Write tests for manage user API [Follow Along]
Implement manage user API [Follow Along]
Review user API in browser [Follow Along]
13.Build recipe API (01 hour 35 minutes)Recipe API design
APIView vs Viewsets
Write test for recipe model [Follow Along]
Implement recipe model [Follow Along]
Create recipe app [Follow Along]
Write tests for listing recipes [Follow Along]
Implement recipe listing API [Follow Along]
Write tests for recipe detail API [Follow Along]
Implement recipe detail API [Follow Along]
Write tests for creating recipes [Follow Along]
Implement create recipe API [Follow Along]
Add additional tests [Follow Along]
Review recipe API in browser [Follow Along]
14.Build tags API (01 hour 24 minutes)Tags API design
Add tag model [Follow Along]
Write tests for listing tags [Follow Along]
Implement tag listing API [Follow Along]
Write tests for updating tags [Follow Along]
Implement update tag API [Follow Along]
Write tests for deleting tags [Follow Along]
Implement delete tag API [Follow Along]
Nested serializers
Write tests for creating tags [Follow Along]
Implement create tag feature [Follow Along]
Write tests for updating recipe tags [Follow Along]
Implement update recipe tags feature [Follow Along]
Review tags API in browser [Follow Along]
15.Build ingredients API (01 hour 21 minutes)Ingredients API Design
Add ingredient model [Follow Along]
Write tests for listing ingredients [Follow Along]
Implement ingredient listing API [Follow Along]
Write tests for updating ingredients [Follow Along]
Implement update ingredient API [Follow Along]
Write tests for deleting ingredients [Follow Along]
Implement delete ingredient API [Follow Along]
Write tests for creating ingredients [Follow Along]
Implement create ingredients feature [Follow Along]
Write tests for updating recipe ingredients [Follow Along]
Implement update recipe ingredients feature [Follow Along]
Refactor recipe views [Follow Along]
Review ingredient API in browser [Follow Along]
16.Recipe image API (01 hour 00 minutes)Recipe image API design
Add image handling dependencies [Follow Along]
Static files with Django and Docker
Configure project for static files [Follow Along]
Modify recipe model [Follow Along]
Write tests for uploading images [Follow Along]
Implement image API [Follow Along]
Review image uploading in browser [Follow Along]
17.Implement filtering (54 minutes)Filtering design
Add tests for filtering recipes [Follow Along]
Implement recipe filter feature [Follow Along]
Add tests for filtering tags and ingredients [Follow Along]
Implement tag and ingredient filtering [Follow Along]
Review filtering in browser [Follow Along]
18.Deployment (01 hour 43 minutes)Deployment plan
Django deployment overview
Add uWSGI to project [Follow Along]
Create proxy configs [Follow Along]
Create proxy Dockerfile [Follow Along]
Handling configuration
Create docker compose config [Follow Along]
Update Django settings [Follow Along]
Creating a virtual server
Create AWS account and user [Follow Along]
Upload SSH Key to AWS [Follow Along]
Create EC2 instance [Follow Along]
Setup GitHub deploy key [Follow Along]
Install Docker, Compose and Git [Follow Along]
Clone and configure project [Follow Along]
Run service [Follow Along]
Updating service [Follow Along]
Deployment summary
19.Summary (50 seconds)Course overview
20.Upgrades (04 minutes)Upgrading to Django 4 [Follow Along]
21.[OLD VERSION] Introduction (08 minutes)Welcome to Build a Backend API with Django REST Framework – Advanced
Intro to the course
Course structure
How to get the most out of this course
How to get help
Windows 10 Home Workaround
22.[OLD VERSION] Technologies used in this course (08 minutes)Python
Django REST Framework
What is test driven development?
23.[OLD VERSION] Installation and setup (01 minutes)System setup
Windows 10 Home Workaround
24.[OLD VERSION] Create new project (22 minutes)Setup new GitHub project
Add Dockerfile
Configure Docker Compose
Custom configuration for Linux users
Create Django project
25.[OLD VERSION] Setup automation (11 minutes)UPDATE: Use GitHub Actions instead
(OLD, SKIP) Enable Travis-CI for project
(OLD, SKIP) Create Travis-CI configuration file
(OLD, SKIP) UPDATE: Travis-CI Docker Pull Issue
(OLD, SKIP) Travis-CI
26.[OLD VERSION] Introduction to test driven development (TDD) (10 minutes)Writing a simple unit test
Writing a unit test with TDD
Django Unit Tests
27.[OLD VERSION] Configure Django custom user model (30 minutes)Create core app
Add tests for custom user model
Implement custom user model
Normalize email addresses
Add validation for email field
Add support for creating superusers
Django custom user model
28.[OLD VERSION] Setup Django admin (24 minutes)Add tests for listing users in Django admin
Modify Django admin to list our custom user model
Modify Django admin to support changing user model
Modify Django admin to support creating users
29.[OLD VERSION] Setting up database (14 minutes)Add postgres to docker compose
Add postgres support to Dockerfile
Configure database in Django
30.[OLD VERSION] Waiting for postgres to start (27 minutes)Mocking with unittests
Add tests for wait_for_db command
Add wait_for_db command
Make docker compose wait for db
UPDATE: Make GitHub actions wait for db
Test in browser
31.[OLD VERSION] Create user management endpoints (01 hour 22 minutes)Create users app
Add tests for create user API
Add create user API
UPDATE: Fix for testing password too short
Add tests for creating a new token
Add create token API
Add tests for manage user endpoint
Add manage user endpoint
32.[OLD VERSION] Create tags endpoint (41 minutes)Create recipe app
Add tag model
Add tests for listing tags
Add feature to list tags
Add create tags feature
33.[OLD VERSION] Create ingredients endpoint (34 minutes)Add ingredient model
Add tests for listing ingredients
Implement feature for listing ingredients
Implement feature for creating ingredients
Re-factor tags and ingredients viewsets
34.[OLD VERSION] Create recipe endpoint (01 hour 18 minutes)Add recipe model
Add tests for listing recipes
Implement feature for listing recipes
Add tests for retrieving recipe detail
Implement feature for retrieving recipe detail
Add tests for creating recipes
Implement feature for creating recipes
Add tests for updating recipes
35.[OLD VERSION] Add upload image endpoint (48 minutes)Add Pillow requirement
Modify recipe model
Add tests for uploading image to recipe
Add feature to upload image
36.[OLD VERSION] Add filtering (37 minutes)Add tests for filtering recipes
Implement feature to filter recipes
Add tests for filtering tags and ingredients
Implement feature for filtering tags and ingredients
37.[OLD VERSION] Summary (52 seconds)What was covered in this course

Resources Required

  • Basic understanding of programming and creating straightforward applications
  • Acquainted with Django
  • Ability to operate the Terminal or Command Prompt with ease
  • A Mac, Linux, or Windows computer that can run Docker (This excludes Windows 10 Home)
  • Positive outlook and openness to learning

Featured Review

Lucas Cavalcanti Rodrigues (5/5) : Fantastic course. I have been taking courses on Udemy for over 5 years. At this point, I’ve taken dozens of courses and I can say: Mark is one of the best instructors on Udemy. It is extremely didactic and clearly he and his team worked hard to make possible to follow the courses from beginning to end, without the student incurring configuration and environment problems.


  • Billie Heidelberg (5/5) : Very great breakdowns of what we are doing and why we are using whichever methods.
  • Bryan Buitrago (5/5) : Mark is an Elite instructor & this course was one of the best I’ve taken on Udemy.
  • Ikenna Gabriel Ifenna (5/5) : If you want to get the best from the course, get started with the beginner course.
  • Eduardo Lucas (5/5) : This course is one of the best courses I´ve already taken here on Udemy.


  • Sam KAA (2/5) : If you are looking for a course to learn REST API with Python & Django; you are at the wrong page.
  • Adam Ward (1/5) : At the end of the day you’ll end up with something working, but the class itself will leave you with a very shallow understanding of what you’ve made.
  • Deborah Fields Watson (2/5) : Not advance course, not examples on how to use front end technologies, or even where to look, outdated, but marketed as resent.
  • George Mylonas (2/5) : There is a lot of things going on in django behind the scenes that were not explained.

About the Author

The instructor of this course is Mark Winterbottom who is a Full-Stack Software Engineer. With 4.6 Instructor Rating and 13,892 Reviews on Udemy, he/she offers 5 Courses and has taught 65,750 Students so far.

  • Instructor is a full-stack software developer with a passion for learning and passing along new technologies
  • Instructor has won awards for his work
  • At the age of 12, Instructor developed this enthusiasm after teaching himself how to create Windows batch scripts
  • Instructor had no idea that his early computer tinkering would develop into a lifelong interest for programming
  • Instructor later earned a degree in computer systems networking from Nottingham Trent University and worked as a developer in a variety of positions for both large companies and start-ups
  • Instructor always thought that teaching is the last step in learning
  • So Instructor established London App Developer, a blog and consulting business about software development
  • Over 30,000 developers read my monthly programming courses, which have been featured in the Daily Mail, Mashable, TechCrunch, the Huffington Post, the Mirror, and Gizmodo
  • To assist developers use their code to earn more money is Instructor’s aim when he teach on Udemy

Comparison Table

ParametersBuild a Backend REST API with Python & Django – AdvancedThe Complete Guide to Django REST Framework and Vue JSReact & Django Full Stack: web app, backend API, mobile apps
OffersINR 449 (INR 3,399) 87% offINR 455 (INR 3,499) 87% offINR 455 (INR 3,499) 87% off
Duration23 hours21 hours19 hours
Rating4.6 /54.4 /54.3 /5
Student Enrollments36,8486,6369,500
InstructorsMark WinterbottomMichele SabaKrystian Czekalski
Register HereApply Now!Apply Now!Apply Now!

Leave feedback about this

  • Rating