Django Web Framework Online Course
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
- Final Remarks on APIs
Deploying our Django Web App to Heroku
- Setting up Heroku for Deployment
- Setting up Project for Deployment - the Procfile
- Full Deployment and Walkthrough
Wrap up
- Course Wrap up - Where to Go From Here