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
4h 18m 11s
English
Paid
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: codewithmosh (Mosh Hamedani)
Hi! I am Mosh Hamedani! I am a passionate and pragmatic software engineer with 20 years of professional experience and I've taught over 10 million people how to code or how to become professional software engineers through my YouTube channel and online courses. I have a Bachelor of Science in Software Engineering and a Master of Science in Networks Systems.
My mission is to make coding and software engineering accessible to everyone through courses that are simple to digest, and practical to implement.
Watch Online 83 lessons
0:00
/ #1: 1- Welcome
All Course Lessons (83)
| # | 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 |
Unlock unlimited learning
Get instant access to all 82 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscription