Django DRF Project: eCommerce RESTful API

Towards building and testing an eCommerce restful API with the Django Rest Framework

4.61 (135 reviews)
Web Development
Django DRF Project: eCommerce RESTful API
20.5 hours
Apr 2023
last update
regular price

What you will learn

@ Phase 1 - Setup and initiate new Django and Django DRF application

Phase 1 - Design, Implement and iterate over a complex database schema

@ Phase 1 - Implement Routers Viewsets and Serializers to create API endpoints for client interactions

@ Phase 1 - Implement serializer customizations to customize data output

@ Phase 1 - Build unit and end-to-end tests to ensure the application works as intended

@ Phase 1 - Document the API endpoints to support frontend interactions


Developing applications can be a fun and effective way of learning a language and framework. In this course, at phase 1, we start building and testing an eCommerce inventory RESTful API with DRF (Django Rest Framework).

This course is primarily designed for anyone looking for a learning journey building applications with the Django Rest Framework, developing, testing and documenting a RESTful API.

Currently, this course presents our first iteration of this course and phase 1 of the development process. This course will evolve and extend over time as we iterate on the content to maximise learning opportunities.

As presented in phase 1 of the course, we initiate the project and start building and testing the core functionality of the RESTful API application. In Phase 1, we learn the fundamentals of the Python Django Rest Framework, design a database, implement testing throughout the application and work towards building our first endpoints while also automatically documenting our efforts. By the end of phase 1, you will have learnt how to start a new Django DRF project and create routers, serializers and viewsets to enable clients to interact with your API. Throughout the development process, we learn how to test our application using Pytest and document our endpoints in preparation for front-end development using SwaggerUI.

We intend to extend the content of the course to eventually include deeper relevant content to aid further your understanding of the development process and techniques, deployment, and other associated technologies. Due to the scale of our courses we hope to bring to you our approach to building courses is a phased, iterative approach. Having time to reflect, analyse and seek feedback is essential to ensure that we develop courses that will ultimately meet the highest expectations.

I hope you enjoy the course.



Course Introduction
Course Resources (Code/Documentation)

Quick-Start Windows 10/11 Installation & Setup Guide

Installing Python 3.9.5
Installation and User Guide for Visual Studio Code
Creating Virtual Environments

Quick-Start MacOS Installation & Setup Guide

Installing Python 3.9.5
Installation and User Guide for Visual Studio Code
Creating Virtual Environments

[Optional Warm-up Orientation Exercise] - New Django Developers

Preparing a new Virtual Environment
Introducing the Python Package Index
Installing the Django Framework
Creating a new Django project
Creating a new Django application
Registering a new Django application
Starting the Django Development Server
Understanding the Django Request-Response Cycle
Creating a unique URL pattern
Writing our first Django view
Creating a new HTML template
Relating an HTML template to a view
Installing a Django application from a requirements.txt file

Ecommerce Inventory Database Design

Preliminary Table List
Multivalued Fields
Table and Field Naming Conventions
Field Specifications
Table Relationships

Project Initiation

Build: Starting a New Django Project
Build: Configuring Multiple Settings Files
Build: Generating a Secret Key
Build: PIP Freeze recording installed packages
Build: Configuring Environment Variables
Build: DRF First Steps
Testing: Pytest First Steps
Source Control: Creating a new GitHub Repository
VSCode: Python VSCode Extensions
Formatting: Black Configuration
Linting: Flake8 Configuration

Dev-v1.0.1: Product App – Product, Category and Brand

Source Control: Creating a New GitHub Branch
Build: Create and Register the Product App
Build: Building the Category Product and Brand Table
Build: Creating the Category Serializer
Build: Define a Category Viewset
Build: Implementing Django DRF Router
Build: API Documentation with drf-spectacular Schema Generation and Swagger
Build: Implementing Brand
Build: Implementing Product
Testing: Coverage HTML Reporting
Introducing Unit and End-to-End Testing
Introducing What to Test in Django
Testing: Model Factories
Testing: APIClient End-to-End Testing
Source Control: Create a New Commit

Dev-v1.0.2: Product App – Sub-Product Inventory

Source Control: Merging a GitHub Branch
Source Control: Creating a New GitHub Branch
Build: Implementing the Product-Line Model
Build: Product-Line Serializer
9.6. Analysis: User Stories
Build: Category Filter with Extra Actions
Build: Filter Return Single Product
Build: Editing Multiple Models in the Django Admin Site
Build: Handling Reverse Relationships in Serializers
Build: Serializer Field Name Mapping and Flattening
Performance: Multiple Queries, Towards Eliminating the N+1 Query Problem
Build: Creating Custom Managers and QuerySet Methods
Build: Custom Field Ordered List
Testing: Pytest Adopts and Common Commands
Testing: Model Clean Method
Testing: APIClient End-to-End Testing

Dev-v1.0.3: Product App – Sub-Product Media

Source Control: Merging a GitHub Branch
Source Control: Creating a New GitHub Branch
Build: Implementing the Product Image Model
Build: Admin Site Reverse Link Inline URLs
Build: Product Image Serializer
Performance: Multiple Queries, Towards Eliminating the N+1 Query Problem
Testing: Product Image Factory
Testing: Product Image Models

Dev-v1.0.4: Product App – Product Attributes

Source Control: Merging a GitHub Branch
Source Control: Creating a New GitHub Branch
Build: Implementing the Attribute Models
Build: Admin Site Attribute Inline Reverse ManytoMany
Build: Product Attribute Serializer
Design: Product Types and Type Attributes
Build: Implementing the Product Type Tables
Build: Admin Site Product Type Inline
Build: Customizing the Serialization Output
Build: Product Attribute Validation
Performance: Product Attribute Query
Build: Custom Field with SerializerMethodField
Testing: Handling Test Failures
Testing: Factory Boy Many-to-Many Relationships

Dev-v1.0.5: Product App – Model and Model Testing Iteration

Source Control: Merging a GitHub Branch
Source Control: Creating a New GitHub Branch
Design: Implementing Database Structure Changes
Design: Category Table Specification
Build: Category Table Iteration
Testing: Category Testing Iteration
Build: Brand Table Removal
Design: Product Table Specification
Build: Product Table Iteration
Testing: Product Table Iteration
Design: Product Line Table Specification
Build: Product Line Table Iteration
Testing: Product Line Testing Iteration
Build: Product Image Iteration
Testing: Product Image Testing Iteration
Design: Product Type Table Specification
Build: Product Type Table Iteration
Testing: Product Type Testing Iteration
Design: Attribute Table Specification
Build: Attribute Table Iteration
Testing: Attribute Testing Iteration
Design: Attribute Value Table Specification
Build: Attribute Value Table Iteration
Testing: Attribute Value Testing Iteration

Dev-v1.0.6: Product App – Admin Iteration

Source Control: Merging a GitHub Branch
Source Control: Creating a New GitHub Branch
Build: Reactivate Admin Interface
Build: Product Attributes Inline

Dev-v1.0.7: Product App – Endpoints Iteration

Source Control: Merging a GitHub Branch
Source Control: Creating a New GitHub Branch
Design: Reviewing API Endpoints
Build: Endpoint – All Categories
Build: Endpoint – All Products by Category
Test: Endpoint – All Products by Category
Performance: Product by Category
Test Your Knowledge
Build: Endpoint – Single Product
Exercise Introduction
Test: Endpoint – Single Product
Test Your Knowledge
Test: Endpoint – Single Product
Test Your Knowledge
Build: Code Refactoring


October 16, 2023
the knowledge that the lecturer tries to convey is very useful. However, the lecturer must do a serious refactoring on the contents. Too many meaningless change back and forth which makes everything so confused!!!!, overlapping the video clips and even swearing in the middle of the lecture.
October 13, 2023
Most comprehensive and informative Django content on the web! I'd say this content is best for learners/developers who want to take these lessons and implement them into paid work. This will help you understand how to use the tools (Django) to build apps that users/people actually use.
July 2, 2023
-making unecessary deletion of migration files and sqlite database which is not advisable when working your project. - making unecessary changes in code in mid-coding, adding new function then he don't know why did he create a function then leave it for a while then it will tell you he change the code or remove the code while on not recording - cannot decide what kind of classes or syntax to be used, sometimes self muttering what or should be use for the function in mid coding -not using, why not use API class based view -changing code off-screen because "with some particular reason" -this tutorial video is mostly like to understand who has a deep background in DRF but if you are new to DRF never bought and watch this - adding new column in models while in the middle of the test and then delete again the migration file and db -chose the slug field instead of unique ID which is very unecessary and not usable in real world development -in product image test mode, he rename all the product line from 'productline' to 'product_line', delete migration file, debug from models, factories. instead why not stick to the 'productline' in the test, you waste the 5mins time just to stick to your 'consistency' naming
May 29, 2023
As always Zander, go so deep in the explanations that makes you understand. this course and by far is the best Udemy course Django DRF not only that, it include TestUnit & PyTest. I definitely recommend Zander courses 100%. Thanks Zander.
May 7, 2023
Zander's teching is awesome, I have loved this particular course so much, this has taught me most of the core concepts involving django and drf in a very simple and interactive manner. I appreciate this so much and would recommend this 10/10.
May 3, 2023
Overall the course was good. Would be better if you could explain new concepts in a more detailed manner for someone who is completely new to it
April 18, 2023
when I run pytest it is not working properly, It seems a small thing,but I am very dissapointed and frustrated about this.
January 17, 2023
Zander (from Very Academy) is the best teacher. I do really enjoy the way he teaches the basics of development and especially python and django. I was always struggling with backend until I found his tutorials. You are amazing and I reaaly understand the hard topics very well with your explanation. Thank you for this solid/complete course
January 13, 2023
You know I have been working on django for at least for five years, and I always had problems with deploying I ran into all sorts of issues and could not solve them, and I was delighted to see that you were setting up The deployment in the settings app, you have also covered getting the requirements to work when I am Downloading in the code. I am only halfway through the course and I haven't finished it, The way you are instructed us on how to use django is excellent, thank you very much. So just one more thing, I don't know if you've done this deliberately, you go Straight in to the admin and you haven't made migration, students would get confused if the did not know django If they did not understand django.
January 6, 2023
Zander from Very Academy always provides a thorough explanation with details to understand the topics and technologies he teaches. I will always take the courses produced by Very Academy based on my experience with them.



Django DRF Project: eCommerce RESTful API - Price chart


Django DRF Project: eCommerce RESTful API - Ratings chart

Enrollment distribution

Django DRF Project: eCommerce RESTful API - Distribution chart

Related Topics

udemy ID
course created date
course indexed date
course submited by