Django Drf Project: Ecommerce Restful Api
Last updated 1/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 9.27 GB | Duration: 20h 27m
Last updated 1/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 9.27 GB | Duration: 20h 27m
Towards building and testing an eCommerce restful API with the Django Rest Framework
What you'll 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
Requirements
No Prior experience needed but would be advantageous
Knowledge of relational database principles would be advantageous
Having a computer would definitely be advantageous
Description
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.
Overview
Section 1: Introduction
Lecture 1 Course Introduction
Lecture 2 Course Resources (Code/Documentation)
Section 2: Quick-Start Windows 10/11 Installation & Setup Guide
Lecture 3 Installing Python 3.9.5
Lecture 4 Installation and User Guide for Visual Studio Code
Lecture 5 Creating Virtual Environments
Section 3: Quick-Start MacOS Installation & Setup Guide
Lecture 6 Installing Python 3.9.5
Lecture 7 Installation and User Guide for Visual Studio Code
Lecture 8 Creating Virtual Environments
Section 4: [Optional Warm-up Orientation Exercise] - New Django Developers
Lecture 9 Preparing a new Virtual Environment
Lecture 10 Introducing the Python Package Index
Lecture 11 Installing the Django Framework
Lecture 12 Creating a new Django project
Lecture 13 Creating a new Django application
Lecture 14 Registering a new Django application
Lecture 15 Starting the Django Development Server
Lecture 16 Understanding the Django Request-Response Cycle
Lecture 17 Creating a unique URL pattern
Lecture 18 Writing our first Django view
Lecture 19 Creating a new HTML template
Lecture 20 Relating an HTML template to a view
Lecture 21 Installing a Django application from a requirements.txt file
Section 5: Ecommerce Inventory Database Design
Lecture 22 Preliminary Table List
Lecture 23 Multivalued Fields
Lecture 24 Table and Field Naming Conventions
Lecture 25 Keys
Lecture 26 Field Specifications
Lecture 27 Table Relationships
Section 6: Project Initiation
Lecture 28 Build: Starting a New Django Project
Lecture 29 Build: Configuring Multiple Settings Files
Lecture 30 Build: Generating a Secret Key
Lecture 31 Build: PIP Freeze recording installed packages
Lecture 32 Build: Configuring Environment Variables
Lecture 33 Build: DRF First Steps
Lecture 34 Testing: Pytest First Steps
Lecture 35 Source Control: Creating a new GitHub Repository
Lecture 36 VSCode: Python VSCode Extensions
Lecture 37 Formatting: Black Configuration
Lecture 38 Linting: Flake8 Configuration
Section 7: Dev-v1.0.1: Product App – Product, Category and Brand
Lecture 39 Source Control: Creating a New GitHub Branch
Lecture 40 Build: Create and Register the Product App
Lecture 41 Build: Building the Category Product and Brand Table
Lecture 42 Build: Creating the Category Serializer
Lecture 43 Build: Define a Category Viewset
Lecture 44 Build: Implementing Django DRF Router
Lecture 45 Build: API Documentation with drf-spectacular Schema Generation and Swagger
Lecture 46 Build: Implementing Brand
Lecture 47 Build: Implementing Product
Lecture 48 Testing: Coverage HTML Reporting
Lecture 49 Introducing Unit and End-to-End Testing
Lecture 50 Introducing What to Test in Django
Lecture 51 Testing: Model Factories
Lecture 52 Testing: APIClient End-to-End Testing
Lecture 53 Source Control: Create a New Commit
Section 8: Dev-v1.0.2: Product App – Sub-Product Inventory
Lecture 54 Source Control: Merging a GitHub Branch
Lecture 55 Source Control: Creating a New GitHub Branch
Lecture 56 Build: Implementing the Product-Line Model
Lecture 57 Build: Product-Line Serializer
Lecture 58 9.6. Analysis: User Stories
Lecture 59 Build: Category Filter with Extra Actions
Lecture 60 Build: Filter Return Single Product
Lecture 61 Build: Editing Multiple Models in the Django Admin Site
Lecture 62 Build: Handling Reverse Relationships in Serializers
Lecture 63 Build: Serializer Field Name Mapping and Flattening
Lecture 64 Performance: Multiple Queries, Towards Eliminating the N+1 Query Problem
Lecture 65 Build: Creating Custom Managers and QuerySet Methods
Lecture 66 Build: Custom Field Ordered List
Lecture 67 Testing: Pytest Adopts and Common Commands
Lecture 68 Testing: Model Clean Method
Lecture 69 Testing: APIClient End-to-End Testing
Section 9: Dev-v1.0.3: Product App – Sub-Product Media
Lecture 70 Source Control: Merging a GitHub Branch
Lecture 71 Source Control: Creating a New GitHub Branch
Lecture 72 Build: Implementing the Product Image Model
Lecture 73 Build: Admin Site Reverse Link Inline URLs
Lecture 74 Build: Product Image Serializer
Lecture 75 Performance: Multiple Queries, Towards Eliminating the N+1 Query Problem
Lecture 76 Testing: Product Image Factory
Lecture 77 Testing: Product Image Models
Section 10: Dev-v1.0.4: Product App – Product Attributes
Lecture 78 Source Control: Merging a GitHub Branch
Lecture 79 Source Control: Creating a New GitHub Branch
Lecture 80 Build: Implementing the Attribute Models
Lecture 81 Build: Admin Site Attribute Inline Reverse ManytoMany
Lecture 82 Build: Product Attribute Serializer
Lecture 83 Design: Product Types and Type Attributes
Lecture 84 Build: Implementing the Product Type Tables
Lecture 85 Build: Admin Site Product Type Inline
Lecture 86 Build: Customizing the Serialization Output
Lecture 87 Build: Product Attribute Validation
Lecture 88 Performance: Product Attribute Query
Lecture 89 Build: Custom Field with SerializerMethodField
Lecture 90 Testing: Handling Test Failures
Lecture 91 Testing: Factory Boy Many-to-Many Relationships
Section 11: Dev-v1.0.5: Product App – Model and Model Testing Iteration
Lecture 92 Source Control: Merging a GitHub Branch
Lecture 93 Source Control: Creating a New GitHub Branch
Lecture 94 Design: Implementing Database Structure Changes
Lecture 95 Design: Category Table Specification
Lecture 96 Build: Category Table Iteration
Lecture 97 Testing: Category Testing Iteration
Lecture 98 Build: Brand Table Removal
Lecture 99 Design: Product Table Specification
Lecture 100 Build: Product Table Iteration
Lecture 101 Testing: Product Table Iteration
Lecture 102 Design: Product Line Table Specification
Lecture 103 Build: Product Line Table Iteration
Lecture 104 Testing: Product Line Testing Iteration
Lecture 105 Build: Product Image Iteration
Lecture 106 Testing: Product Image Testing Iteration
Lecture 107 Design: Product Type Table Specification
Lecture 108 Build: Product Type Table Iteration
Lecture 109 Testing: Product Type Testing Iteration
Lecture 110 Design: Attribute Table Specification
Lecture 111 Build: Attribute Table Iteration
Lecture 112 Testing: Attribute Testing Iteration
Lecture 113 Design: Attribute Value Table Specification
Lecture 114 Build: Attribute Value Table Iteration
Lecture 115 Testing: Attribute Value Testing Iteration
Section 12: Dev-v1.0.6: Product App – Admin Iteration
Lecture 116 Source Control: Merging a GitHub Branch
Lecture 117 Source Control: Creating a New GitHub Branch
Lecture 118 Build: Reactivate Admin Interface
Lecture 119 Build: Product Attributes Inline
Section 13: Dev-v1.0.7: Product App – Endpoints Iteration
Lecture 120 Source Control: Merging a GitHub Branch
Lecture 121 Source Control: Creating a New GitHub Branch
Lecture 122 Design: Reviewing API Endpoints
Lecture 123 Build: Endpoint – All Categories
Lecture 124 Build: Endpoint – All Products by Category
Lecture 125 Test: Endpoint – All Products by Category
Lecture 126 Performance: Product by Category
Lecture 127 Build: Endpoint – Single Product
Lecture 128 Test: Endpoint – Single Product
Lecture 129 Build: Code Refactoring
Beginners, Developers, Students, and Enthusiasts new to Django or the Django Rest Framework,evelopers, Students, and Enthusiasts looking to learn the Django Rest Framework