
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Choose and set up a text editor for the Django 5 course using Visual Studio Code, install the Python, Django, and SQLite extensions, and explore a SQLite browser.
Django Documentation:
What Python version can I use with Django?
Django version 3.2 | Python = 3.6, 3.7, 3.8, 3.9, 3.10 (added in 3.2.9)
Django version 4.0 | Python = 3.8, 3.9, 3.10
Django version 4.1 | Python = 3.8, 3.9, 3.10, 3.11 (added in 4.1.3)
Django version 4.2 | Python = 3.8, 3.9, 3.10, 3.11, 3.12 (added in 4.2.8)
Django version 5.0 | Python = 3.10, 3.11, 3.12
Django MVT
Model (M): The Model is responsible for handling data-related logic. It represents the data structure of your Database
View (V): The View is responsible for handling user interface logic and processing user inputs.
Template (T): The Template is responsible for presentation logic. It defines how the data from the models should be displayed to the user.
Learn how to serve HTML files in Django by placing templates in the app templates folder or in a global templates directory, and render them with the render function.
Explore how the Django template language uses context data to render dynamic HTML with variables, dot notation, and filters like date, float format, truncate characters, and default.
Learn to use the Django template for loop tag to render lists in HTML, duplicating elements for each item and accessing item fields with dot notation, including loop counters.
Explore how Django templates use the if condition to show or hide HTML elements based on context variables, and combine it with for loops and inline CSS class logic.
Explore Django template inheritance to reuse header and footer across pages using a shared main.html, and understand blocks, extends, and URL tags for navigation.
Reuse HTML elements in Django templates by creating header and footer partials and including them with the include tag, streamlining the main HTML and supporting a bootstrap-themed site.
Learn to integrate a bootstrap theme into a Django project by wiring the index.html and assets folder through Django templates and the load static tag, enabling proper static file handling.
Apply django template inheritance to organize a bootstrap theme by creating main.html as the parent and index.html as the child, and extract header and footer as reusable components.
Explore how Django models use Python classes to create tables, store and query data, starting with the general info model for company details and migrations.
Register and manage your general info model in the Django admin site, customizing list displays and permissions, and learn to tailor the admin interface using admin.py, __str__, and field controls.
Explore how Django's orm lets you interact with the database using Python objects that translate to SQL; perform read, create, update, delete, and filter with q objects for or logic.
Query the general info model with the Django orm, retrieve a single record, and pass its phone, email, and company name to the view context for rendering in html.
Query the service model, pass to context, and render icons, titles, and descriptions in a Django template loop using Bootstrap icons.
Create a Django testimonials model with user image, username, job title, rating, and review; register it to the admin site and display stars using a 1–5 choice, with migrations.
Fetch all testimonials from the database in the Django view and render them in a Swiper HTML section with user image, username, job title, and a rating stars loop.
Build a Django contact form by creating a view, linking it to a URL and the HTML form with CSRF protection, then test sending messages.
Differentiate get and post requests, show how view functions are triggered by URL or HTML form submission, check request.method, and redirect to the home page.
Configure Django to send emails with Gmail by creating an app password, updating settings.py, and using send_mail from django.core.mail in the contact view, handling SSL issues.
Apply a try-except around Django's send mail flow, use the messages framework to display success or error messages on the page, with message tags differentiating error and success.
Apply Bootstrap alerts to Django messages to display success and danger notifications, replace h1 with alert components, and implement a sticky alert CSS for persistent notifications.
Create an author model in Django 5 to store first name, last name, country, and join date, and link it to the block model via a foreign key, then migrate.
Explore how foreign keys create one-to-many relationships between author and block models in django, linking author id to block records and enabling multiple blocks per author.
Link the block and author models with a foreign key to establish a one-to-many relationship, and configure on delete behaviors to protect related blocks. Demonstrate admin drop-downs and migrations.
Build a Django ORM query in the index function to fetch the three most recent blocks by creation date, ordered descending and sliced to three for the home page.
Implement dynamic blocks pagination in Django using the Paginator to display blocks per page and switch between pages via a URL page parameter read with request.get.
build a rich text editor for blog content using Django CKEditor, replacing the plain text field with a rich text field, configuring settings, running migrations, and rendering HTML in templates.
Learn to prepare a Django app for cloud deployment by fixing empty database queries with getattribute defaults, apply migrations, and set up a superuser to populate general info without crashes.
Prepare Django to serve static files on deployment by configuring the static route, running collect static, and adding White Noise middleware to settings.py for production css, javascript, and images.
Learn to push a django project to GitHub by creating a repo, initializing git locally, adding files, and pushing to the remote after creating a requirements.txt and gitignore.
Hi! and Welcome to the new 2026 Project based Django-5 Course "Django 5 - Build a Complete Website from Scratch to Deploy"!
where you will learn all Django Fundamentals, Integrating Django with Frontend and Bootstrap Templates to build stylish websites, CRUD operations and much more!
The course is absolute beginner friendly you don't need to have any prior knowledge of Django.
As we going to build Django Project from scratch, Going up the ladder step-by-step and covering line by line all the code and logic explained in detail.
From Scratch until Deployment of website on the internet, building a great looking Agency website with Blogging section and Admin site control, Webpage is mobile responsive using latest version of Bootstrap version 5.
The great about the course, it covers all sections required to get you from being beginner to the next level! with all the content using latest versions and course build on year 2026.
The basic knowledge of Python and html/css is all that is required to get started with this course.
Mentioning some of the ares will be covered from absolute first step:
VS Code Configuration
Django/Python version & Installation
Working with Virtual Env
Django & third party packages
Working with Static files locally and on deployment stage
Building Frontend from basic HTML to using advanced Bootstrap-5 Template
Using Django HTML Template to control the Frontend and display data
Using Django Admin Site and Customising it
Working with Django ORM (CRUD operations)
Django Migrations and Monitoring the changes on the Database
Build advanced Blogging section with Rich Text Editor
Using GMAIL service to send out emails
Deploying the website to the internet
Working with Git & Github
and much much more!
Additionally we are going to deploy our website on the internet in a step by step easy to follow appoarch!
So let's begin the journey of becoming an expert in Django.
Sincerely, Azzam Makki