Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Build a Backend REST API with Python & Django REST Framework - Advanced
Welcome to Build a Backend REST API with Python & Django REST Framework - Advanced
Welcome to the course (2:01)
Technical Requirements (1:08)
API Details & Software Upgrades (1:55)
Course structure (1:53)
Getting help (5:16)
Section 2 - App Design
App overview (4:09)
Technologies (2:28)
Django project structure (1:02)
Section 3 - Test Driven Development
What is Test Driven Development? (3:24)
Test Driven Development Quiz
Section 4 - System Setup
What to install (0:54)
Setup confirmation [Follow Along] (1:35)
Section 5 - Project Setup
New project overview (6:26)
Create GitHub project [Follow Along] (5:27)
Docker and Django (4:25)
Define Python requirements [Follow Along] (3:46)
Create project Dockerfile [Follow Along] (17:46)
Quiz: Docker and Docker Compose
Create Docker Compose configuration [Follow Along] (4:03)
Linting and Tests (3:04)
Configure flake8 [Follow Along] (10:04)
Create Django project [Follow Along] (2:39)
Run project with Docker Compose [Follow Along] (1:58)
Project setup overview (1:03)
Section 6 - Configure GitHub Actions
What is GitHub Actions (2:30)
Configuring GitHub Actions (4:09)
Create GitHub Actions config [Follow Along] (11:15)
Configure Docker Hub Credentials [Follow Along] (6:15)
Test GitHub Actions [Follow Along] (6:49)
Quiz: GitHub Actions configuration
Section 7 - Test Driven Development with Django
Testing in Django (7:43)
Write a test [Follow Along] (5:35)
Write a test using TDD [Follow Along] (3:54)
Mocking (4:23)
Testing web requests (2:25)
Common testing problems (3:53)
Quiz: TDD with Django
Section 8 - Configure Database
Database architecture overview (4:51)
Add database service [Follow Along] (6:47)
Database configuration with Django (8:13)
Install PostgreSQL database adaptor [Follow Along] (5:29)
Configure database in Django [Follow Along] (2:53)
Fixing database race condition (6:27)
Create core app [Follow Along] (2:05)
Write tests for wait_for_db command [Follow Along] (19:45)
Add wait_for_db command [Follow Along] (9:14)
Database migrations (7:54)
Update Docker Compose and CI/CD [Follow Along] (4:21)
Summary (0:57)
Section 9 - Create User Model
The Django user model (5:16)
Design custom user model (2:08)
Add user model tests [Follow Along] (7:01)
Implement user model [Follow Along] (17:27)
Normalize email addresses [Follow Along] (6:10)
Require email input [Follow Along] (2:50)
Add superuser support [Follow Along] (4:29)
Test user model [Follow Along] (2:40)
Summary of Create User Model (0:24)
Section 10 - Setup Django Admin
Django admin overview (4:00)
Write tests for listing users [Follow Along] (7:58)
Make Django admin list users [Follow Along] (5:16)
Support modifying users [Follow Along] (8:19)
Support creating users [Follow Along] (5:15)
Section 11 - API Documentation
Importance of API documentation (4:34)
Auto docs with DRF (6:11)
Quiz: Documentation
Install drf-spectacular [Follow Along] (3:51)
Configure URLs [Follow Along] (3:32)
Test Swagger UI [Follow Along] (1:49)
Summary (0:27)
Section 12 - Build user API
User API design (2:03)
Create user app [Follow Along] (2:13)
Write tests for create user API [Follow Along] (14:03)
Implement create user API [Follow Along] (13:47)
Authentication (7:59)
Quiz: Authentication
Write tests for token API [Follow Along] (7:11)
Implement token API [Follow Along] (13:49)
Write tests for manage user API [Follow Along] (10:11)
Implement manage user API [Follow Along] (9:20)
Review user API in browser [Follow Along] (7:00)
Summary (0:53)
Section 13 - Build Recipe API
Recipe API design (1:54)
APIView vs Viewsets (3:58)
Write test for recipe model [Follow Along] (5:57)
Implement recipe model [Follow Along] (9:13)
Create recipe app [Follow Along] (1:30)
Write tests for listing recipes [Follow Along] (16:26)
Implement recipe listing API [Follow Along] (11:53)
Write tests for recipe detail API [Follow Along] (4:03)
Implement recipe detail API [Follow Along] (6:26)
Write tests for creating recipes [Follow Along] (6:11)
Implement create recipe API [Follow Along] (2:31)
Add additional tests [Follow Along] (16:07)
Review recipe API in browser [Follow Along] (8:34)
Summary (0:25)
Section 14 - Build tags API
Tags API design (1:27)
Add tag model [Follow Along] (7:14)
Write tests for listing tags [Follow Along] (14:01)
Implement tag listing API [Follow Along] (7:28)
Write tests for updating tags [Follow Along] (4:15)
Implement update tag API [Follow Along] (1:45)
Write tests for deleting tags [Follow Along] (2:38)
Implement delete tag API [Follow Along] (1:12)
Nested serializers (2:16)
Write tests for creating tags [Follow Along] (11:40)
Implement create tag feature [Follow Along] (7:36)
Write tests for updating recipe tags [Follow Along] (9:56)
Implement update recipe tags feature [Follow Along] (7:03)
Review tags API in browser [Follow Along] (7:28)
Summary (0:28)
Section 15 - Build ingredients API
Ingredients API Design (2:20)
Add ingredient model [Follow Along] (5:53)
Write tests for listing ingredients [Follow Along] (12:51)
Implement ingredient listing API [Follow Along] (6:32)
Write tests for updating ingredients [Follow Along] (4:05)
Implement update ingredient API [Follow Along] (1:31)
Write tests for deleting ingredients [Follow Along] (3:16)
Implement delete ingredient API [Follow Along] (0:50)
Write tests for creating ingredients [Follow Along] (11:44)
Implement create ingredients feature [Follow Along] (6:51)
Write tests for updating recipe ingredients [Follow Along] (10:04)
Implement update recipe ingredients feature [Follow Along] (2:29)
Refactoring (12:51)
Refactor recipe views [Follow Along] (5:21)
Review ingredient API in browser [Follow Along] (5:12)
Summary (0:36)
Section 16 - Recipe image API
Recipe image API design (2:04)
Add image handling dependencies [Follow Along] (2:54)
Static files with Django and Docker (8:11)
Configure project for static files [Follow Along] (8:49)
Modify recipe model [Follow Along] (10:11)
Write tests for uploading images [Follow Along] (12:30)
Implement image API [Follow Along] (10:08)
Review image uploading in browser [Follow Along] (5:27)
Summary (0:24)
Section 17 - Implement filtering
Filtering design (4:45)
Add tests for filtering recipes [Follow Along] (9:54)
Implement recipe filter feature [Follow Along] (12:21)
Add tests for filtering tags and ingredients [Follow Along] (13:25)
Implement tag and ingredient filtering [Follow Along] (5:38)
Review filtering in browser [Follow Along] (7:30)
Summary (0:26)
Section 18 - Deployment
Deployment plan (3:28)
Django deployment overview (11:37)
Add uWSGI to project [Follow Along] (9:14)
Create proxy configs [Follow Along] (11:52)
Create proxy Dockerfile [Follow Along] (9:18)
Handling configuration (1:41)
Create docker compose config [Follow Along] (8:38)
Update Django settings [Follow Along] (8:59)
Creating a virtual server (3:16)
Create AWS account [Follow Along] (4:56)
Upload SSH Key to AWS [Follow Along] (4:29)
Create EC2 instance [Follow Along] (4:57)
Setup GitHub deploy key [Follow Along] (2:21)
Install Docker, Compose and Git [Follow Along] (3:14)
Clone and configure project [Follow Along] (3:19)
Run service [Follow Along] (2:50)
Updating service [Follow Along] (8:33)
Deployment overview (0:38)
Section 19 - Course Overview
Course overview (0:50)
Section 20 - Software Upgrades
Upgrading to Django 4 [Follow Along] (4:12)
Teach online with
Create GitHub Actions config [Follow Along]
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock