This course offers an in-depth journey into Django, the versatile web framework written in Python. Starting with a foundational understanding, you'll explore the architecture and workflow of Django, from server-client communication to setting up your development environment on both Windows and Mac. Each section builds on the last, ensuring a cohesive learning experience. You'll delve into core Django concepts such as models, views, and templates, gaining hands-on experience with practical projects like creating a recipe app. Learn to manage databases with Django’s ORM, handle user authentication, and create dynamic, data-driven web pages. The course emphasizes real-world applications, making abstract concepts tangible through continuous practice and examples.
By the end of the course, you'll be proficient in deploying Django applications to Heroku, integrating with REST APIs, and enhancing user interfaces with Bootstrap. This comprehensive guide ensures you have the skills and confidence to build, deploy, and manage Django applications in a professional setting.
Who should take this Course?
The Django Web Framework Online Course is ideal for Python developers, web programmers, and software engineers who want to build secure, scalable, and dynamic web applications with Django. It is also valuable for students, beginners in web development, and IT professionals looking to enhance their backend development skills and gain hands-on experience in creating full-stack applications using Django.
What you will learn
Install and set up Django on various platforms
Implement Django's MVT architecture
Use Django ORM to interact with databases
Create dynamic web pages using Django templates
Handle user authentication and manage sessions
Build and consume REST APIs with Django REST Framework
Course Outline
Introduction
Introduction
The Django Framework & Overview
How the Web Works & Server Client Communication
Install Python and Development Setup - Windows and Mac
Install Python on Windows - For Windows Users ONLY
Python Installation on Mac - For macOS Users ONLY
Download Visual Studio Code
Install Python Extensions
Running First Python Program in VS Code
Django Web Framework Fundamentals - Deep Dive
Install Django, Create Virtual Environment and Django Project
Django Project File Structure Overview
Apps vs Project - Creating and Running First Django App
Django MVT Architecture - Overview
Changing Project's Routes and Testing Routes on the Browser
Passing Data to The Response in our View
Static vs Dynamic Websites - Django Backend vs Frontend - Overview
Django Settings and URL Dispatcher - Deeper Dive Overview
Django Views - Deep Dive
Django Templates - Overview
Create an Index HTML Template and Rendering It
Dynamically Show Data Passed Through the Template
Django Template Language - DTL - Tags & Looping Through a List
Adding an Else Tag into the Template
Creating a Base Template and Extending it
Django Models and Database - ORM & Migrations
Introduction to Django Models
What is a Model and Relationships
Restructure Code - Creating the Foodie App
Restructuring the Templates Directory
Django Migrations Overview - Running Migrations & Show Created Tables
Understanding Models, Migrations Files - Create the Category Model
The Django Shell - Add & Listing all Categories
The Django Admin Site - Introduction & Registering the Category Model
Modifying a Model and Running Migrations - Fix Issues
Customizing the Admin Interface & Show More Fields on the Models
Create the Recipe Model
Creating the Recipe App & Code Refactor
Running Migrations for the Recipe App - Full Internal Migration Restructuring
Create the Comments App and Running Migrations
Django QuerySet API
The Django QuerySet API - Overview
QuerySet API - Using Filter with contains & exact Fields Lookups
QuerySet API - Using the exclude Type
QuerySet API - Filter Chaining
QuerySet API - Slicing QuerySets and Aggregation
The Django Documentation - Field Lookups - Using Greater Than
QuerySet API - Complex Queries with the Q Object
QuerySet API - Values and ValuesList and Exists Functions
Django Templates and Static Files - The Django Templating Engine
Creating the Base.html Template - Navbar and Footer
Showing all Recipes in a Template
Showing the Recipes in the Details Template
Adding URL Template Tag For Navigating to the Recipe Detail Page
Redirecting to Home Page when Logo is Clicked
Show Categories and Navigating to All Recipes under Specific Category
The Meta Class and Options
Class-based Views - Introduction and Hands-on
Class-based Views - Showing Details Page
The object_list Variable
Dynamic Filtering in Class-based Views
Creating Custom Class-based Views - Hands-on
Django Forms and User Inputs
Django Forms and User Inputs - Introduction and Hands-on
Deep Dive into Forms in Django - Hands-on
Form Validation - Save and Redirect
Hands-on - Custom Forms - Part 1
Hands-on - Custom Forms - Customizations - Part 2
Adding Recipe with a Dropdown Category
Redirect to Recipes Page
Add Recipe with Pre-populated Genre - Hands-on
Code Refactor and Explaining What we Just Did
Widgets in Django
Authentication and Authorization in Django
Introduction to Django Authorization - The User Object
Creating the User Registration Component - Part 1
Registering a User Successfully
Log out Users
Create the Log in View and Template - Fixing Route Duplicates
Styling our Django Web App with Bootstrap
Styling Using Bootstrap - Installation and Setup - Base.html
Styling the Add Recipe Template
Style Category Template
Styling Recipes Template
Using Filters to Format Dates
Adding Recipe Details from Category Recipe route
Finish Styling all Recipes Templates
Styling the Main Page
Django Authentication - Creating a User Profile from the User Object
Creating a UserProfile
Testing the UserProfile by Adding a New User in the Admin Interface
Adding User Field to Recipe and Comments Models
Setting up the Edit Profile Template
Creating UserProfiles for Existing Users Using the Django Shell
Updating the Admin User Profile and Styling the Edit-Profile Template
Edit Profile - Showing the User Profile Picture
Click on Navbar Username to Get to Edit Profile
Showing User Profile Picture if it Exists in the Navbar
Add "created by" to Recipes
Setting up Comments View
Showing Comments for a Specific Recipe
Adding Comments for a Specific Recipe
Customizing the CommentForm
Adding User Avatar in all Comments and Styling Comments
Fixing the Save Recipe View to Add a User to the Recipe Model
Allow Users to Login Before Leaving a Comment
Limiting Access to Logged in Users - the login_required Decorator
Adding image Field to the Recipe Module - Recipe View Restructuring
Showing Recipe Images
Styling the Main Page
Styling the Recipe Card
The Django Messaging Framework
The Django Messaging Framework - Overview and Setup
Showing Messages in the Template
Adding Bootstrap Alert Styling to the Message
Your Turn - Add Messages and Display them Throughout the Entire Project
Adding a Search Bar - Part 1
Styling the Search Bar
Finalizing the Search bar Functionality
Complex Search Filter with the Q Object
Session Management in Django
Session Management in Django - Introduction
Setup a Session - Keep track of Number of Visits
Deleting a Session and Flushing it Altogether
Showing Session Expiration Time
Session Hands-on - Feedback Form Review Step
Adding Favorites Recipe Feature to the App
Adding Favorite Recipe Feature
Setting up the Toggle View and URL
Toggling Favorite
Adding FontAwesome Icons
Showing Users Favorite Recipes
Adding a Navbar button to Show All Favorite Recipes
Styling the Navbar Buttons and Testing with Logged out Users
Delete & Update Recipes
Delete a Recipe
Edit Recipe
Django REST Framework - Build a REST API
Introduction to REST and API - Overview
Create Recipe Serializer
Show the Recipe API Endpoints
Adding a Recipe Via the API View
Creating User and Category Serializer and Nesting Them