Master advanced techniques and best practices for building professional-quality backends. Following the concepts we mastered in Part 2, we're now going to take our backend to the next level.
The Ultimate Django Series: Part 3
You'll learn how to:
- Build an API for uploading files
- Write automated tests with PyTest
- Find performance bottlenecks
- Implement caching with Redis
- Run background jobs with Celery
- Deploy your backends to the cloud
- Plus much, much more.
By the end of Part 3, you'll have mastered these concepts, which means you'll be able to produce professional-quality backends with confidence.
About the Author: Mosh Hamedani (Code with Mosh)
Mosh Hamedani is the founder of Code with Mosh, one of the highest-volume independent online instructors in software education. He has been publishing courses continuously since the early Udemy era and has taught over a million students across his Udemy catalog and his standalone Code with Mosh platform. His teaching style is patient, rigorously structured, and deliberately beginner-tolerant — the courses are widely cited as some of the most accessible introductions to their respective topics.
The Code with Mosh catalog covers an unusually wide span: web development with HTML / CSS / JavaScript / React / Angular / Node.js, Python and Django, C# and .NET, mobile development with React Native and Flutter, SQL and database fundamentals, and the algorithm / data-structure interview prep tracks. Few independent instructors maintain this much breadth at consistent quality.
The CourseFlix listing under this source carries over 35 Code with Mosh courses spanning that range. Material is paid; Code with Mosh runs on per-course pricing on the original platform. Courses are aimed primarily at developers picking up a new technology from a clean start through to working production proficiency.
Watch Online 83 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | 1- Welcome Demo | 00:50 | |
| 2 | 2- Setting Up the Project | 05:23 | |
| 3 | 1- Introduction | 00:21 | |
| 4 | 2- Managing Media Files | 03:55 | |
| 5 | 3- Adding Images to Products | 03:00 | |
| 6 | 4- Building an API to Upload Images | 06:15 | |
| 7 | 5- Returning Images from the API | 02:50 | |
| 8 | 6- Validating Uploaded Files | 04:01 | |
| 9 | 7- Setting Up the Client App | 01:48 | |
| 10 | 8- Enabling CORS | 05:34 | |
| 11 | 9- Managing Images in the Admin | 09:13 | |
| 12 | 1- Introduction | 00:16 | |
| 13 | 2- Setting up a Fake SMTP Server | 02:34 | |
| 14 | 3- Configuring the Email Backend | 02:39 | |
| 15 | 4- Sending Emails | 04:35 | |
| 16 | 5- Attaching Files | 02:06 | |
| 17 | 6- Sending Templated Emails | 04:59 | |
| 18 | 1- Introduction | 00:16 | |
| 19 | 2- Introduction to Celery | 02:02 | |
| 20 | 3- Message Brokers | 02:51 | |
| 21 | 4- Installing Redis | 02:58 | |
| 22 | 5- Celery and Windows | 00:50 | |
| 23 | 6- Setting Up Celery | 05:30 | |
| 24 | 7- Creating and Executing Tasks | 05:40 | |
| 25 | 8- Scheduling Periodic Tasks | 03:54 | |
| 26 | 9- Monitoring Celery Tasks | 01:42 | |
| 27 | 1- Introduction | 00:23 | |
| 28 | 2- What is Automated Testing | 02:12 | |
| 29 | 3- Test Behaviours, Not Implementations | 02:51 | |
| 30 | 4- Tooling | 02:02 | |
| 31 | 5- Your First Test | 04:45 | |
| 32 | 6- Running Tests | 05:02 | |
| 33 | 7- Skipping Tests | 00:55 | |
| 34 | 8- Continuous Testing | 01:57 | |
| 35 | 9- Running and Debugging Tests in VSCode | 02:30 | |
| 36 | 10- Authenticating the User | 00:58 | |
| 37 | 11- Single or Multiple Assertions | 05:49 | |
| 38 | 12- Fixtures | 07:39 | |
| 39 | 13- Creating Model Instances | 09:00 | |
| 40 | 1- Introduction | 00:20 | |
| 41 | 2- Why Performance Testing | 01:23 | |
| 42 | 3- Installing Locust | 00:33 | |
| 43 | 4- Creating a Test Script | 07:52 | |
| 44 | 5- Running a Test Script | 04:14 | |
| 45 | 6- Running a Performance Test | 02:53 | |
| 46 | 7- Performance Optimization Techniques | 03:52 | |
| 47 | 8- Profiling with Silk | 07:58 | |
| 48 | 9- Verifying Optimizations | 03:45 | |
| 49 | 10- Stress Testing | 02:49 | |
| 50 | 1- Introduction | 00:17 | |
| 51 | 2- What is Caching | 02:24 | |
| 52 | 3- Cache Backends | 01:34 | |
| 53 | 4- Simulating a Slow API | 01:11 | |
| 54 | 5- Getting a Baseline Performance Benchmark | 01:25 | |
| 55 | 6- Installing Redis | 00:56 | |
| 56 | 7- Configuring Caching | 01:17 | |
| 57 | 8- Using the Low-level Cache API | 03:28 | |
| 58 | 9- Caching Views | 04:50 | |
| 59 | 10- Verifying Optimizations | 01:48 | |
| 60 | 11- Managing Redis Cache Content | 02:41 | |
| 61 | 1- Introduction | 00:17 | |
| 62 | 2- Adding the Home Page | 02:38 | |
| 63 | 3- Adding Static Assets | 03:08 | |
| 64 | 4- Collecting Static Assets | 02:48 | |
| 65 | 5- Serving Static Assets | 01:00 | |
| 66 | 6- Configuring Logging | 06:28 | |
| 67 | 7- Logging | 05:31 | |
| 68 | 8- Managing Development and Production Settings | 07:14 | |
| 69 | 9- Serving the Application with Gunicorn | 02:10 | |
| 70 | 1- Introduction | 00:20 | |
| 71 | 2- Hosting Options | 00:54 | |
| 72 | 3- Adding Project to Git | 02:04 | |
| 73 | 4- Getting Started with Heroku | 01:27 | |
| 74 | 5- Creating a Heroku App | 02:00 | |
| 75 | 6- Setting Environment Variables | 01:50 | |
| 76 | 7- Creating a Procfile | 01:59 | |
| 77 | 8- Provisioning a MySQL Database | 03:51 | |
| 78 | 9- Provisioning a Redis Instance | 02:52 | |
| 79 | 10- Provisioning an SMTP Server | 01:36 | |
| 80 | 11- Deploying the Application | 05:53 | |
| 81 | 12 - Populating the Database | 02:14 | |
| 82 | 13- Dockerizing the App | 09:57 | |
| 83 | 14- Course Wrap Up | 00:25 |
Get instant access to all 82 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionCourse content
83 lessons · 4h 18m 11sShow all 83 lessons
- 1 1- Welcome 00:50
- 2 2- Setting Up the Project 05:23
- 3 1- Introduction 00:21
- 4 2- Managing Media Files 03:55
- 5 3- Adding Images to Products 03:00
- 6 4- Building an API to Upload Images 06:15
- 7 5- Returning Images from the API 02:50
- 8 6- Validating Uploaded Files 04:01
- 9 7- Setting Up the Client App 01:48
- 10 8- Enabling CORS 05:34
- 11 9- Managing Images in the Admin 09:13
- 12 1- Introduction 00:16
- 13 2- Setting up a Fake SMTP Server 02:34
- 14 3- Configuring the Email Backend 02:39
- 15 4- Sending Emails 04:35
- 16 5- Attaching Files 02:06
- 17 6- Sending Templated Emails 04:59
- 18 1- Introduction 00:16
- 19 2- Introduction to Celery 02:02
- 20 3- Message Brokers 02:51
- 21 4- Installing Redis 02:58
- 22 5- Celery and Windows 00:50
- 23 6- Setting Up Celery 05:30
- 24 7- Creating and Executing Tasks 05:40
- 25 8- Scheduling Periodic Tasks 03:54
- 26 9- Monitoring Celery Tasks 01:42
- 27 1- Introduction 00:23
- 28 2- What is Automated Testing 02:12
- 29 3- Test Behaviours, Not Implementations 02:51
- 30 4- Tooling 02:02
- 31 5- Your First Test 04:45
- 32 6- Running Tests 05:02
- 33 7- Skipping Tests 00:55
- 34 8- Continuous Testing 01:57
- 35 9- Running and Debugging Tests in VSCode 02:30
- 36 10- Authenticating the User 00:58
- 37 11- Single or Multiple Assertions 05:49
- 38 12- Fixtures 07:39
- 39 13- Creating Model Instances 09:00
- 40 1- Introduction 00:20
- 41 2- Why Performance Testing 01:23
- 42 3- Installing Locust 00:33
- 43 4- Creating a Test Script 07:52
- 44 5- Running a Test Script 04:14
- 45 6- Running a Performance Test 02:53
- 46 7- Performance Optimization Techniques 03:52
- 47 8- Profiling with Silk 07:58
- 48 9- Verifying Optimizations 03:45
- 49 10- Stress Testing 02:49
- 50 1- Introduction 00:17
- 51 2- What is Caching 02:24
- 52 3- Cache Backends 01:34
- 53 4- Simulating a Slow API 01:11
- 54 5- Getting a Baseline Performance Benchmark 01:25
- 55 6- Installing Redis 00:56
- 56 7- Configuring Caching 01:17
- 57 8- Using the Low-level Cache API 03:28
- 58 9- Caching Views 04:50
- 59 10- Verifying Optimizations 01:48
- 60 11- Managing Redis Cache Content 02:41
- 61 1- Introduction 00:17
- 62 2- Adding the Home Page 02:38
- 63 3- Adding Static Assets 03:08
- 64 4- Collecting Static Assets 02:48
- 65 5- Serving Static Assets 01:00
- 66 6- Configuring Logging 06:28
- 67 7- Logging 05:31
- 68 8- Managing Development and Production Settings 07:14
- 69 9- Serving the Application with Gunicorn 02:10
- 70 1- Introduction 00:20
- 71 2- Hosting Options 00:54
- 72 3- Adding Project to Git 02:04
- 73 4- Getting Started with Heroku 01:27
- 74 5- Creating a Heroku App 02:00
- 75 6- Setting Environment Variables 01:50
- 76 7- Creating a Procfile 01:59
- 77 8- Provisioning a MySQL Database 03:51
- 78 9- Provisioning a Redis Instance 02:52
- 79 10- Provisioning an SMTP Server 01:36
- 80 11- Deploying the Application 05:53
- 81 12 - Populating the Database 02:14
- 82 13- Dockerizing the App 09:57
- 83 14- Course Wrap Up 00:25
Related courses
-
Updated 2y agoPython Django Dev To Deployment
By: Udemy, Brad TraversyThis is a very practical course where we take a list of requirements from a fictional company to build a real estate application using Django.11 hours 7 minutes 11 seconds 5 / 5 -
Updated 2y agoBuild a Backend REST API with Python & Django - Advanced
By: UdemyWelcome to the advanced course on how to Build a Backend REST API using Python, Django (2.0), Django REST Framework (3.9), Docker, Travis CI, Postgres and Test7 hours 57 minutes 59 seconds -
Updated 2y ago[Full Stack] Airbnb Clone Coding
By: Nomad CodersIn this series, we make an AirBnb clone. We will develop a complete stack that runs the entire loop, including front + back + distribution.29 hours 47 minutes 6 seconds