Skip to content
#3 in DjangoUdemyBestseller on UdemyDjangoPaid courseIntermediate levelCertificate

Build a Backend REST API with Python & Django - Advanced (Udemy.com)

Create an advanced REST API with Python, Django REST Framework and Docker using Test Driven Development (TDD)

Created by: Mark Winterbottom

Last updated April 2025

Our take

Based on the ratings of 9,867 students, a sample of their written reviews and the syllabus, as the course stood in April 2025. No course pays to be reviewed.

This is the follow-up to Mark Winterbottom's beginner API course, and it's really about process rather than Django itself. Over about 15 hours and 156 lectures the syllabus builds a recipe API with user auth, tags, ingredients, image uploads and filtering, all written test-first inside Docker, with GitHub Actions running lint and tests and an 18-lecture deployment section at the end. It suits developers who already know Django basics and want to see how a production setup is put together. The content was refreshed in April 2025.

Reviewers with some Django behind them rate it highly. Around 61 percent of nearly 9,900 ratings are five stars, and the praise centres on the TDD workflow, the CI setup, and the clear, realistic pace of a working engineer. One test automation engineer reused the GitHub Actions setup on a Ruby on Rails API, and another reviewer is applying the Docker and TDD material to a project already under way. The three-star and lower reviews share one complaint: explanations of Django REST Framework components are thin, and the course expects a lot of typing along without saying why a serializer or import is chosen. One reviewer counted seven sections of setup before any DRF appears, and another called the speech too fast to follow.

Compared with the full-stack bootcamp and the Practical Guide it sits beside, this is narrower and more advanced: no front end, one project, a lot of testing. Take the beginner course first if the requirements list looks unfamiliar. If you already write Django views and want the Docker, CI and test discipline that reviewers say production work needs, the reviews suggest it delivers, as long as you keep the DRF docs open alongside.

Best forDjango developers who can already build a basic site and want to see TDD, Docker and CI done the way a production team does it.
Skip it ifYou want to learn Django REST Framework itself in depth, or you learn best from set tasks rather than typing along.

Pros

  • Builds one realistic recipe API test-first, with Docker, Postgres, GitHub Actions and an 18-lecture deployment section
  • Reviewers say the TDD and CI patterns transferred straight to their own projects, even in other languages
  • Clear, structured explanations from a working engineer; 61 percent of nearly 9,900 ratings are five stars
  • Updated as recently as April 2025 and still a Bestseller with about 57,000 students

Cons

  • Thin explanations of Django REST Framework itself; low-star reviews say they had to look up serializers elsewhere
  • Pure follow-along format with no set exercises, so it's easy to type code without understanding it
  • Seven sections of Docker, CI and database setup before any real API code, which one reviewer found slow
The course was exactly what I needed for learning how to build an API with Django. It was easy to follow throughout and covered important topics like CI/CD and deployment while still staying focused.
Christina C, a student

Intermediate is accurate: needs prior Django, comfort with the terminal, and a machine that runs Docker (not Windows 10 Home).

icon
What you will learn

  • Setting up a local development server with Docker
  • Writing a Python project using Test Driven Development
  • Building a REST API with advanced features such as uploading and viewing images
  • Creating a backend that can be used a base for your future projects or MVP
  • Hands on experience applying best practice principles such as PEP-8 and unit tests
  • Configure Travis-CI to automate code checks

Course content

20 sections · 156 lectures · 15 hours of video 6 quizzes, 1 article

  1. 1Introduction 4 free previews4 lectures · 10 min
  2. 2App Design3 lectures · 8 min
  3. 3Test Driven Development1 lecture · 1 quiz · 3 min
  4. 4System Setup2 lectures · 2 min
  5. 5Project Setup11 lectures · 1 quiz · 1 hour
  6. 6Configure GitHub Actions5 lectures · 1 quiz · 25 min
  7. 7Test Driven Development with Django6 lectures · 1 quiz · 28 min
  8. 8Configure Database12 lectures · 1.3 hours
  9. 9Create User Model9 lectures · 48 min
  10. 10Setup Django Admin5 lectures · 31 min

Who it is for

The instructor says it suits

  • Intermediate programmers who already have some understanding of Python and want to skill up
  • Developers proficient in other languages but looking to add Python to their toolkit

What you need before you start

  • Basic knowledge of programming and building simple applications
  • Familiar with Django
  • Comfortable using command line tools (Terminal/Command Prompt)
  • macOS, Linux or Windows machine capable of running Docker (This excludes Windows 10 Home)
  • Positive attitude and willingness to learn!

How it compares

Against the other 72 rated Udemy courses in Django on CourseDuck:

  • Rating4.5 out of 5higher than 45% of them
  • Reviews9,867#2 of 73 by number of reviews
  • Length14.8 hourslonger than 69% of them
  • Last updatedApril 2025more recently than 75% of them

icon
Course Description

**NOTE: This course requires you to download Docker Desktop from Docker's website. If you are a Udemy Business user, please check with your employer before downloading software.**


Welcome to the advanced course on how to Build a Backend REST API using Python, Django (3.2), Django REST Framework (3.12), Docker, GitHub Actions, Postgres and Test Driven Development!

Whether you’re a freelance programmer, tech entrepreneur, or just starting out building backends - this course will help lay the foundation of your knowledge base and give you the tools to advance your skills with some of the most in-demand programming languages today.

APIs are the unsung heroes behind the technologies that we all love and use religiously.

One of the most critical components for any tech-based business is an API. So knowing how to create an API from start to finish is a vital skill to have as a developer. You cannot build a successful app without a backend REST API!

In this course I’ll show you how to build an advanced API that handles creating and updating user profiles, changing passwords, creating objects, uploading images, filtering and searching objects, and more.

The best way to learn anything is to do it. So the practical application of the course -- the project that you’ll build along side me -- is an API. A recipe API, to be specific.

You will learn how to build an advanced recipe API that allows you to upload and store some of your favourite recipes from photos and the web.

You’ll learn how to create objects i.e. recipes with titles, price points, cooking times, ingredients and tags like “comfort food”, “vegan” or “dessert”. Think of it as a virtual recipe box.

By the end of this course you will have built a fully functioning REST API that can handle:

  • User authentication

  • Creating objects

  • Filtering and sorting objects

  • Uploading and viewing images

You’ll also learn, in detail how to:

  • Setup a project with Docker and Docker-Compose

  • Configure GitHub Actions to automatically run linting and unit tests

  • Write unit tests using the Django Test Framework

  • Apply best practice principles including Test Driven Development  

  • Handle uploading media files with Django

  • Customize the Django admin

  • Configure a Postgres database

This course has one singular focus: To teach you how to create an advanced API from start to finish using best practice principles and Test Driven Development.

This course is NOT FOR YOU:

  • If you’re looking for a course to build an API, a front end, and deployment

  • If you’re looking to build 10 different apps in one course

  • If you want to learn lots of different technologies and approaches to app development in general

This is a hands-on course, with a bit of theory and lots of opportunities to test your knowledge.

The content is challenging but rewarding. Ready for it? Let’s dive in!

**PLEASE NOTE: You cannot run Docker on Windows 10 Home edition. This is because Windows 10 Pro or Enterprise is required in order to use Hyper-V which Docker uses for virtualization. To take this course you have two options. These are covered in Lecture 6, which is free to preview before purchasing the course.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Mark Winterbottom

Hey, I’m Mark! I’m an award-winning full-stack software engineer with a passion for learning and teaching new technologies.

This passion started at 12-years-old when I taught myself how to make Windows batch scripts.  Little did I know that hacking around on my computer back then would turn into a life-long passion for programming.

I went on to complete a degree in Computer Systems Networking at Nottingham Trent University, and worked in various developer roles at multinational corporations and startups.  

I always believed that the final step to learning is teaching. And so I started a software development blog and consultancy firm called London App Developer.  My work has been featured in the Daily Mail, Mashable, TechCrunch, the Huffington Post, the Mirror and Gizmodo, and over 30,000 developers read my programming tutorials every month.

My goal for teaching on Udemy is to help developers make a better living through their code. Whether that’s by building new systems and tools to make the world a better place, or just to make their lives easier. If I can help them to increase their earning power, so they can better support their communities and loved ones, then even better. :)

My specialities are Python, Django, JavaScript, HTML5 and CSS3, but because I’m full-stack, I can work my way around most programming languages and frameworks.

I live in London, England with my wife and business partner, Brooke.

icon
More courses by Mark Winterbottom

$109.99

$129.99

$12.99

icon
More Django courses

$99.99

$74.99

$12.99

$79.99

$84.99

$54.99

icon
Reviews

4.5

9,867 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Juan Giler on 6/1/2026

Amazing! I have learn a lot of new things, and consolidate with already a bit of previous hand on practice on Django. Only section I didnt do actually was the actually deploy of the server due to the AWS service (I didnt want to go throught the verification and whatsoever) nevertheless I did all the steps and check the material. If in a future I will need some guidelines I know where to come.

By Christina C on 1/15/2026

The course was exactly what I needed for learning how to build an API with Django. It was easy to follow throughout and covered important topics like CI/CD and deployment while still staying focused. I was easily able to apply some of these aspects to other projects I’m working on even in different languages, like setting up GitHub workflows for my Ruby on Rails API. As a test automation engineer I also thoroughly enjoyed the test driven development. The course did a good job of highlighting the value in that, and it also made it easy for me to ensure I was following along correctly.

By Miles Eastwood on 9/11/2025

The course was good. I feel however there were a lack of explanations on how things work or done. He glossed over some bits that I think required a deeper explanation for example know which modules to import for each view, serilaizer etc. A deeper dive into the documentation for this would have been apprecited. Follow alongs are in my opinion not the best way to learn. It takes the thinking away and you literally just regurgitate code. I have come from the Dr Angela Yu course 100 days of Python which was a much better learning experiance. We got assigned tasks that we had to do ourselves and encouraged to think of our own solution. In this course there is none of that. It just to follow along exactly how its done.

By Westlepor on 5/23/2024

The course content was well-structured and covered all the essential topics in a clear and concise manner. The instructor did a fantastic job explaining complex concepts and provided practical examples that were easy to follow. I especially appreciated the hands-on projects, which allowed me to apply what I learned and gain practical experience. The provided resources and supplementary materials were very helpful in reinforcing the lessons. Thank you for a great learning experience!

By Alex Jaime on 2/28/2024

this is an amazing course. great view into test driven development and how a django rest api is built. a few things are perhaps outdated but very few indeed and all are easy fixes you can find online in stack overflow/gpt help. would recommend this to everyone looking to learn django backend

By Bahram Ziaee on 12/2/2022

I believe that the course is very well organized and Mark walks you very professionally through all the lectures. My favorite part of this course is "Test Driven Development" . Just as an idea, It might be better if the database model was more complex, with more fields and relationship. I very much appreciate the efforts made in building up this course. Thanks a lot Mark and keep up the good work .. Regard, Bahram

By Bryan Buitrago on 7/27/2022

Mark is an Elite instructor & this course was one of the best I've taken on Udemy. If you're looking for a Django course, this is it! The course is extremely well-structured. Perfect balance of length, not too long or short. The material and the instructor are engaging, and straight to the point. I have learned so much valuable knowledge from mark & I have nothing but great things to say about this course. Thank you so much, Mark, for putting together this course & for having updated it. Looking forward to more of your content.

By Albert Shim on 7/8/2022

This course is kind of misleading because it's not very advanced. The instructor doesn't teach you how to do important things like complex queries using classes. Which is something you need to do if you want to do anything in a real project. As soon as you want to create a real world project, you immediately find yourself in a situation where you are reading endless documentation that only show you the simplest examples. If you want to know what the inherited methods are doing in the classes you are using, then you have to read the source code. Eventually, you'll be googling to no end and ending up in the abyss of despair that is stackoverflow. Obviously, I'm not a complete idiot (Though I can be sometimes) and I understand that this course is meant to show you a general idea of how to build a REST API before working on your own projects. But this course is supposed to be ADVANCED. I was expecting that he would go over all of the important things that you need in your own projects. This course doesn't even give you a basic idea of how to do things like complex queries (i.e. joining multiple tables and parsing them into JSON response from a single query in a single viewset) for a real project. Also, the instructor doesn't actually explain in detail what's happening as he is coding, but rather, he merely gives you false sense of competence by briefly summarizing the abstraction of his code. As the instructor types out the code he will tell you to wait for what it all means after he is done, but his explanations consists of literally reading what he types in an exasperated tone. This course has not only frustrated me to no end, it has wasted my time. I highly advise people to not take this course and just read the documentation. You will get farther and understand Django A LOT better on your own in a shorter amount of time.

By Edward Cheadle on 9/24/2021

One of the best courses I have taken. Probably because it was the right level for what I needed. Mark explains things quickly and thoroughly. I also found his resources attached to the lessons invaluable. I have taken two of Mark's courses and I am looking at his terraform deployment class now.

By André du Toit on 7/25/2020

It was a lot of listening, coding, reasoning. On the certificate it states 8 hours but it felt a lot more than that. I worked consistently for three weeks. All the debugging of errors. I got my full worth but somehow when stated on the certificate that it is only 8 hours, it does not match the effort that I put in. I learnt a lot and I look forward to applying these skills. Thanks for your time for preparing this course. I am looking forward to doing your DevOps course.

Showing all 10 reviews on CourseDuck

Read all 9,867 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 90 / 100