Build a Backend REST API with Python & Django – Advanced

Build a Backend REST API with Python & Django – Advanced

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 8 Hours | 5.50 GB

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

Welcome 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 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 Travis-CI 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.

What you’ll 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
Table of Contents

Introduction
1 Welcome to Build a Backend API with Django REST Framework – Advanced
2 Intro to the course
3 Course structure
4 How to get the most out of this course
5 How to get help
6 Windows 10 Home Workaround

Technologies used in this course
7 Python
8 Django
9 Django REST Framework
10 Docker
11 Travis-CI
12 Postgres
13 What is test driven development

Installation and setup
14 System setup
15 Windows 10 Home Workaround

Create new project
16 Setup new GitHub project
17 Add Dockerfile
18 Configure Docker Compose
19 Custom configuration for Linux users
20 Create Django project

Setup automation
21 Enable Travis-CI for project
22 Create Travis-CI configuration file

Introduction to test driven development (TDD)
23 Writing a simple unit test
24 Writing a unit test with TDD

Configure Django custom user model
25 Create core app
26 Add tests for custom user model
27 Implement custom user model
28 Normalize email addresses
29 Add validation for email field
30 Add support for creating superusers

Setup Django admin
31 Add tests for listing users in Django admin
32 Modify Django admin to list our custom user model
33 Modify Django admin to support changing user model
34 Modify Django admin to support creating users

Setting up database
35 Add postgres to docker compose
36 Add postgres support to Dockerfile
37 Configure database in Django

Waiting for postgres to start
38 Mocking with unittests
39 Add tests for wait for db command
40 Add wait for db command
41 Make docker compose wait for db
42 Test in browser

Create user management endpoints
43 Create users app
44 Add tests for create user API
45 Add create user API
46 Add tests for creating a new token
47 Add create token API
48 Add tests for manage user endpoint
49 Add manage user endpoint

Create tags endpoint
50 Create recipe app
51 Add tag model
52 Add tests for listing tags
53 Add feature to list tags
54 Add create tags feature

Create ingredients endpoint
55 Add ingredient model
56 Add tests for listing ingredients
57 Implement feature for list ingredients
58 Implement feature for creating ingredients
59 Re-factor tags and ingredients viewsets

Create recipe endpoint
60 Add recipe model
61 Add tests for listing recipes
62 Implement feature for listing recipes
63 Add tests for retrieving recipe detail
64 Implement feature for retrieving recipe detail
65 Add tests for creating recipes
66 Implement feature for creating recipes
67 Add tests for updating recipes

Add upload image endpoint
68 Add Pillow requirement
69 Modify recipe model
70 Add tests for uploading image to recipe
71 Add feature to upload image

Add filtering
72 Add tests for filtering recipes
73 Implement feature to filter recipes
74 Add tests for filtering tags and ingredients
75 Implement feature for filtering tags and ingredients

Summary
76 What was covered in this course