Build a Backend REST API with Python & Django – Advanced

Build a Backend REST API with Python & Django – Advanced

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


  • Basic knowledge of programming and building simple applications
  • Familiar with Django
  • Comfortable using command line tools (Terminal/Command Prompt)
  • macOS, Linux or Windows machine capable of running Docker (This excludes Windows 10 Home)
  • Positive attitude and willingness to learn!


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.

Who this course is for:
  • Beginner to intermediate programmers who already have some understanding of Python and want to skill up
  • Developers proficient in other languages but looking to add Python to their toolkit

Course introduction
1 Course structure
2 Technologies
3 Vagrant vs. Docker
4 How to get the most out of this course
5 How to get help

Setting up your development environment
6 Windows Installing Git, VirtualBox, Vagrant, Atom and ModHeader
7 macOS Installing Git, VirtualBox, Vagrant, Atom and ModHeader

Setting up your project
8 Creating a workspace
9 Creating a Git project
10 Pushing to GitHub

Creating a development server
11 Creating a Vagrantfile
12 Configuring our Vagrant box
13 Running and connecting to our dev server
14 Running a Hello World script

Creating a Django app
15 Create Python Virtual Environment
16 Install required Python packages
17 Create a new Django project & app
18 Enable our app in the Django settings file
19 Test and commit our changes

Setup the Database
20 What are Django Models
21 Create our user database model
22 Add a user model manager
23 Set our custom user model
24 Create migrations and sync DB

Setup Django Admin
25 Creating a superuser
26 Enable Django Admin
27 Test Django Admin

Introduction to API Views
28 What is an APIView
29 Create first APIView
30 Configure view URL
31 Testing our API View
32 Create a Serializer
33 Add POST method to APIView
34 Test POST Function
35 Add PUT, PATCH and DELETE methods
36 Test the PUT, PATCH and DELETE methods

Introduction to Viewsets
37 What is a Viewset
38 Create a simple Viewset
39 Add URL Router
40 Testing our Viewset
41 Add create, retrieve, update, partial update and destroy functions
42 Test Viewset

Create Profiles API
43 Plan our Profiles API
44 Test searching profiles
45 Create user profile serializer
46 Create profiles ViewSet
47 Register profile Viewset with the URL router
48 Test creating a profile
49 Create permission class
50 Add authentication and permissions to Viewset
51 Test new permissions
52 Add search profiles feature

Create login API
53 Create login API viewset
54 Test login API
55 Set token header using ModHeader extension

Create profile feed API
56 Plan profile feed API
57 Restrict viewing status updates to logged in users only
58 Test new private feed
59 Add new model Item
60 Create and run model migration
61 Add profile feed model to admin
62 Create profile feed item serializer
63 Create ViewSet for our profile feed item
64 Test Feed API
65 Add permissions for feed API
66 Test feed API permissions

Deploying our API to a server on AWS
67 Introduction to deploying our app to AWS
68 Add key pair to AWS
69 Create EC2 server instance

[adinserter block=”4″]


[adinserter block=”5″]


Download Paid Udemy Courses For Free.


Add a Comment

Your email address will not be published. Required fields are marked *