Skip to main content
CourseFlix

Build a Backend REST API with Python & Django - Advanced

7h 57m 59s
English
Paid

Welcome to the advanced course on building 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, this course will lay the foundation of your knowledge base and equip you with tools to advance your skills using some of the most in-demand programming languages today.

Why Learn to Build APIs?

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. Knowing how to create an API from start to finish is a vital developer skill. A successful app cannot be built without a backend REST API!

Course Overview

In this course, I'll show you how to build an advanced API capable of:

  • Creating and updating user profiles
  • Changing passwords
  • Creating objects and uploading images
  • Filtering and searching objects

The project you'll build alongside me is a recipe API that allows you to upload and store your favorite recipes from photos and the web. You'll create objects with titles, price points, cooking times, ingredients, and tags like "comfort food", "vegan", or "dessert". Consider it your virtual recipe box!

What You'll Achieve

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

Skills and Tools You'll Master

  • Setting up a project with Docker and Docker-Compose
  • Configuring Travis CI to automatically run linting and unit tests
  • Writing unit tests using the Django Test Framework
  • Applying best practices, including Test Driven Development
  • Handling media file uploads with Django
  • Customizing the Django admin interface
  • Configuring a Postgres database

This course focuses on teaching you how to create an advanced API from scratch using best practices and Test Driven Development.

Is This Course Right for You?

This course is NOT for you if:

  • You're looking for a course to build an API, a front-end, and deployment
  • You want a course to build 10 different apps
  • You're seeking to learn various technologies and approaches to app development in general

This is a hands-on course with some theory and many 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 because it requires Windows 10 Pro or Enterprise for Hyper-V virtualization. Two options are covered in Lecture 6, which is free to preview before purchasing the course.

Course Prerequisites

Requirements:
  • Basic programming knowledge and experience building simple applications
  • Familiarity with Django
  • Comfort in using command line tools (Terminal/Command Prompt)
  • A macOS, Linux, or Windows machine capable of running Docker (excludes Windows 10 Home)
  • Positive attitude and willingness to learn!

Intended Audience

Who this course is for:
  • Intermediate programmers with some understanding of Python wanting to skill up
  • Developers proficient in other languages intending to add Python to their toolkit

Key Learning Objectives

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 like uploading and viewing images
  • Creating a backend usable as a base for future projects or MVPs
  • Hands-on experience applying best practice principles such as PEP-8 and unit tests
  • Configuring Travis CI to automate code checks

About the Author: udemy

udemy thumbnail

Udemy is a global online marketplace for teaching and learning. It connects students with instructors who share skills in many fields.

Who Uses Udemy

Millions of learners use Udemy to gain skills for work and personal growth. Companies, governments, and nonprofits also use Udemy to train their teams.

What Udemy Offers

Udemy provides a curated set of business and technical courses. These courses help teams build practical skills and support ongoing learning at work.

Watch Online 72 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 72 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Welcome to Build a Backend API with Django REST Framework - Advanced
All Course Lessons (72)
#Lesson TitleDurationAccess
1
Welcome to Build a Backend API with Django REST Framework - Advanced Demo
02:21
2
Intro to the course
02:25
3
Course structure
01:04
4
How to get the most out of this course
00:55
5
How to get help
01:26
6
Python
00:49
7
Django
00:55
8
Django REST Framework
00:47
9
Docker
00:36
10
Travis-CI
00:44
11
Postgres
00:19
12
What is test driven development?
04:01
13
Setup new GitHub project
02:51
14
Add Dockerfile
09:57
15
Configure Docker Compose
05:23
16
Create Django project
02:57
17
Enable Travis-CI for project
01:42
18
Create Travis-CI configuration file
07:16
19
Writing a simple unit test
05:48
20
Writing a unit test with TDD
05:09
21
Create core app
02:53
22
Add tests for custom user model
05:42
23
Implement custom user model
10:24
24
Normalize email addresses
03:26
25
Add validation for email field
02:37
26
Add support for creating superusers
05:21
27
Add tests for listing users in Django admin
09:31
28
Modify Django admin to list our custom user model
02:28
29
Modify Django admin to support changing user model
07:49
30
Modify Django admin to support creating users
04:57
31
Add postgres to docker compose
05:26
32
Add postgres support to Dockerfile
05:44
33
Configure database in Django
02:53
34
Mocking with unittests
01:31
35
Add tests for wait_for_db command
11:44
36
Add wait_for_db command
07:32
37
Make docker compose wait for db
02:52
38
Test in browser
03:02
39
Create users app
03:30
40
Add tests for create user API
16:44
41
Add create user API
13:53
42
Add tests for creating a new token
10:40
43
Add create token API
13:54
44
Add tests for manage user endpoint
11:51
45
Add manage user endpoint
11:25
46
Create recipe app
02:16
47
Add tag model
08:10
48
Add tests for listing tags
12:09
49
Add feature to list tags
12:13
50
Add create tags feature
07:08
51
Add ingredient model
04:09
52
Add tests for listing ingredients
10:30
53
Implement feature for list ingredients
05:05
54
Implement feature for creating ingredients
07:39
55
Re-factor tags and ingredients viewsets
07:05
56
Add recipe model
12:51
57
Add tests for listing recipes
15:17
58
Implement feature for listing recipes
08:39
59
Add tests for retrieving recipe detail
09:13
60
Implement feature for retrieving recipe detail
07:07
61
Add tests for creating recipes
11:27
62
Implement feature for creating recipes
04:23
63
Add tests for updating recipes
09:43
64
Add Pillow requirement
12:16
65
Modify recipe model
11:54
66
Add tests for uploading image to recipe
13:30
67
Add feature to upload image
11:18
68
Add tests for filtering recipes
08:58
69
Implement feature to filter recipes
09:20
70
Add tests for filtering tags and ingredients
13:00
71
Implement feature for filtering tags and ingredients
06:32
72
What was covered in this course
00:53
Unlock unlimited learning

Get instant access to all 71 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

  • Conduct a Choice-Based Conjoint Analysis for Netflix with Python thumbnail

    Conduct a Choice-Based Conjoint Analysis for Netflix with Python

    Sources: zerotomastery.io
    Learn to use Choice-Based Conjoint Analysis to assist Netflix's growth. This project-based course explores consumer preferences using data analysis and Python.
    1 hour 39 minutes 35 seconds
  • Effective PyCharm (2021 edition) thumbnail

    Effective PyCharm (2021 edition)

    Sources: Talkpython
    PyCharm is the premier Python IDE (integrated development environment). You will be hard pressed to find an editor that gives a more holistic way to build Python applications…
    7 hours 30 minutes 43 seconds
  • Create UberEats with Python/Django and Swift 3 thumbnail

    Create UberEats with Python/Django and Swift 3

    Sources: Code4Startup (coderealprojects)
    Learn Python & Swift 3 by creating Real-life startup platform with Web dashboard and iOS app like UberEats, Doordash, Postmates.
    19 hours 13 minutes 29 seconds
  • Statistics Bootcamp (with Python): Zero to Mastery thumbnail

    Statistics Bootcamp (with Python): Zero to Mastery

    Sources: zerotomastery.io
    Master statistics with Python through projects and quizzes. Learn with fun from industry experts. Ideal for careers in Data Analytics and Machine Learning.
    20 hours 50 minutes 51 seconds
  • Make a Location-Based Web App With Django and GeoDjango thumbnail

    Make a Location-Based Web App With Django and GeoDjango

    Sources: realpython.com
    Throughout this course, you’ll learn how to use Django and GeoDjango to build a location-based web application from scratch. You’ll be building a simple nearby
    56 minutes 48 seconds
  • Build an AI Stock Analyzer using ChatGPT, Python and LangChain thumbnail

    Build an AI Stock Analyzer using ChatGPT, Python and LangChain

    Sources: zerotomastery.io
    Create your own AI application for stock analysis and portfolio optimization using OpenAI GPT models, Python, and LangChain...
    3 hours 3 minutes 56 seconds 5 / 5