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 Highlights | Details |
---|---|
Registration Link | Apply Now! |
Price | INR 449 ( |
Duration | 23 Hours |
Rating | 4.6/5 |
Student Enrollment | 36,807 students |
Instructor | Mark Winterbottom https://www.linkedin.com/in/markwinterbottom |
Topics Covered | Django, API Documentation, GitHub, Python, App Design |
Course Level | Advanced |
Total Student Reviews | 6,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 |
Technologies | ||
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] | ||
Mocking | ||
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] | ||
Summary | ||
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] | ||
Summary | ||
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] | ||
Authentication | ||
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] | ||
Summary | ||
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] | ||
Summary | ||
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] | ||
Summary | ||
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] | ||
Refactoring | ||
Refactor recipe views [Follow Along] | ||
Review ingredient API in browser [Follow Along] | ||
Summary | ||
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] | ||
Summary | ||
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] | ||
Summary | ||
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 | ||
Django REST Framework | ||
Docker | ||
Travis-CI | ||
Postgres | ||
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 | ||
Mocking | ||
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.
Pros
- 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.
Cons
- 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
Parameters | Build a Backend REST API with Python & Django – Advanced | The Complete Guide to Django REST Framework and Vue JS | React & Django Full Stack: web app, backend API, mobile apps |
---|---|---|---|
Offers | INR 449 ( | INR 455 ( | INR 455 ( |
Duration | 23 hours | 21 hours | 19 hours |
Rating | 4.6 /5 | 4.4 /5 | 4.3 /5 |
Student Enrollments | 36,848 | 6,636 | 9,500 |
Instructors | Mark Winterbottom | Michele Saba | Krystian Czekalski |
Register Here | Apply Now! | Apply Now! | Apply Now! |
Leave feedback about this