
Learn Django from the ground up with Python, building a car listings web app and deploying to production. Master views, models, forms, authentication, templates, signals, and admin panel.
Build a Django car-listing web app with user authentication, posting listings, searching, liking, editing, viewing details, emailing inquiries, and deploying on Heroku with PostgreSQL.
Review the prerequisites for the Django course, including HTML and CSS basics and how they relate, plus a basic grasp of JavaScript and Python fundamentals.
Explore the web development ecosphere, comparing static and dynamic sites and the move from client-side to server-side rendering. See how Django, a server-side framework, enables you to build full-stack applications.
Explore how web requests move from the browser to a server using the http protocol, with dns lookups, get/post/put/delete methods, https encryption, and Django on Heroku.
Explore how Django enables rapid, secure web development with authentication, forms, an ORM for SQL databases, middleware, and a powerful templating system for server-side rendering.
Explore the HTML basics, structure, and semantics, including tags, attributes, the DOM, and how browser rendering and the JS VM work.
Learn the basics of CSS and how cascading stylesheets control HTML element presentation, with a quick look at selectors and methods to attach CSS to HTML.
Learn the basics of JavaScript, its role in enabling asynchronous browser interactivity and DOM manipulation, and how to include code via script tags or external files in Django.
Explore the basics of Python, including what the language is and the problems it solves, and learn core features like variables, strings, operators, control flow, classes, and functions for Django.
Explore Python fundamentals, including its beginner-friendly syntax and dynamic typing, as well as its cross-platform portability and powerful frameworks like Django, TensorFlow, PyTorch, NumPy, and pandas.
Explore python syntax, emphasizing indentation as code blocks, basic constructs like def and return, and how to write single line and multiline comments in an online Omni Python editor.
Explore how Python variables act as containers for storing data values, showing creation by assignment, dynamic typing, and type casting, plus global and local scopes and the print function.
Explore Python strings from literals and triple-quoted multi-line strings to indexing, slicing, concatenation, and formatting with +, f-strings, and format, plus methods like upper, lower, isdigit, isdecimal, and isnumeric.
Learn to work with numbers in Python: integers, floats, and complex numbers; convert types, generate random numbers with random, and use arithmetic and assignment operators.
Explore boolean values in Python and how they represent true or false. Use boolean operators and comparisons, and recognize false values none, 0, and empty string that affect control flow.
Explore Python lists, their zero-based indices, mutability, and common operations such as append, insert, extend, remove, pop, and sort. Discover slicing and list comprehension to build and filter lists.
Learn how Python tuples are ordered and immutable, support indexing and duplicates, and how sets provide unordered, unique collections with add, remove, and loop operations.
Explore Python dictionaries, a powerful, ordered, changeable key-value data type. Learn to create, access, update, copy, and remove items; use keys() and values(); and nest dictionaries.
Explore Python control flow with if statements, comparison operators, and logical conditions. Learn to use if, elif, else, nested and ternary forms to conditionally run code.
Discover Python for loops for iterating over lists, tuples, dictionaries, sets, and strings using for, plus break, continue, range, and an else block that executes after completion.
Learn how Python while loops execute a code block while a condition stays true, using while syntax, a variable like x, and operations like print, increment, break, continue, and else.
Explore how Python functions work: define with def, pass parameters, invoke with positional or arbitrary keyword arguments, and return data with defaults and f-strings.
Learn how Python uses classes and objects in object-oriented programming, define constructors with __init__, manage properties and methods with self, and modify or delete properties.
Explore python inheritance by building a person base class and a student derived class that inherits name and birthdate, adds a grade, and uses super to initialize for code reuse.
Learn to use Python's try, except, else, and finally blocks to test code for errors, handle exceptions with actions, inspect the exception object, and raise errors without crashing the program.
Set up Python on your computer, create a dedicated virtual environment, install essential packages, and explore Visual Studio Code for efficient Django development on macOS and Windows.
Install python on macOS from python.org, download the latest stable release, and verify with Terminal commands that Python 3.10 is installed, then prepare to create a virtual environment.
Create isolated Python environments with virtualenv to separate project dependencies from the global Python installation, enabling clean development and smooth deployment for Django and machine learning projects.
Open a new Visual Studio Code window, locate your virtual environment, and install key extensions for Django and Python, including Django, Python IntelliSense, and templating support, to enhance code editing.
Activate your virtual environment, install django, and use django-admin startproject to create your project, then run python manage.py runserver to verify the development server.
Use the Django manage.py file as a command line utility to run the server and manage migrations, while the ORM translates Python code into SQL to update the database.
Explore Django project structure, including manage.py, the project and app folders, settings and urls, and learn how the development server auto reloads and the admin panel provides admin capabilities.
Explore the Django admin panel, a prebuilt backend for managing site data, by creating a superuser, logging in, and editing users and groups in the Django authentication system.
Explore basic fundamental concepts in gender development alongside building a Django app's base view with a video background, home and registration links, and a footer.
Begin building the main page view by creating a new Django app named main, replace the default debug page, and explore migrations, models, views, admin, and urls.
Create a Django landing view and wire it to the base url using url patterns and include, while returning an HttpResponse with a simple html string.
Use Django templating to render dynamic html by creating templates, using render to pass context, and inject variables like name into the page.
Extend the main.html template by defining the HTML page, head, and body with metadata such as charset and viewport, and explore Django templating and static files integration.
Learn how to add static files to a Django app using Bootstrap, load the static tag, and reference CSS and JavaScript assets to style your site.
Use Django templating to create a base.html, define and override blocks like body and footer, and load static assets to build reusable, Bootstrap-enabled pages.
Finish the main page HTML by adding a video, header, navigation, and content using Django templates and static resources. Display the year in the footer with the now template tag.
Learn to build a Django authentication system by creating user registration and login functionality, and manage user data such as bios, profiles, pictures, and addresses.
Launch authentication by creating a separate users app with Django, register it in installed apps, run the server, and prepare for managing users via the Django admin panel.
Develop a Django profile model to extend the user with a one-to-one relationship, adding image field, bio, phone, and address, managed in the admin panel with migrations.
Register the profile model with the Django admin and customize its admin class to display profiles by the associated username and enable adding profiles in admin.
Learn to automate user profile creation in Django using signals. Implement post_save receiver, register signals in app config, and use the signals framework for clean, centralized logic.
Add a location to user profiles by creating a Location model with address fields, US state and ZIP code fields, and a one-to-one link to profiles.
Use Django signals to automatically create a location object when a profile is created, establishing a one-to-one link and updating the profile.
Configure Django media handling by defining image upload paths in a dedicated media folder with a custom upload_to function, and expose media in development via settings and urls.
Create a django login view, wire a login URL, and render a login template that extends the base template, integrating views, URLs, and templates for user authentication.
Learn to use Django's built-in authentication form to authenticate users, render it in the login template via context data, and enhance its appearance with Django Crispy Forms and Bootstrap four.
Learn how Django handles forms with post and get requests, build and validate a login form, authenticate users, and implement CSRF protection using the CSRF token in templates.
Implement a guarded Django home page by wiring a login flow: create home view, template, and URL; use login and login_required; configure LOGIN_URL and LOGIN_REDIRECT_URL; validate and redirect after sign-in.
Learn to use Django messages to display one-time user notifications, integrate the messages framework into templates, and style alerts with Bootstrap for actions like login success or errors.
Create a new register view and register template in the users app, wiring a /register endpoint. Use Django's user creation form and pass a register form in the context.
Explore Django class-based views for user registration, contrasting them with function-based views. Define a register view class handling get to render a user creation form with a template.
Implement registration logic in a Django class-based view using a user creation form, then save, authenticate, log in, and redirect home, leveraging signals for related profile creation.
Use Django signals to delete a profile's location when a user is deleted, and update templates to link to register and show home or login based on authentication.
Build the Django app homepage to display vehicle listings with title, description, author, date, and features for liking and viewing details, while enabling listing creation and logout.
Implement a site-wide header with a home logo link, a profile option for authenticated users, and a logout flow via a Django logout view and URL routing.
Create a Django listing model using a uuid primary key, with created and updated timestamps, and a one-to-many foreign key to a seller profile with cascade delete and migrations.
Define a Django listing model with a brand dropdown via choices, add car fields (VIN, mileage, color, engine, transmission), and configure image uploads and admin registration.
Create listing data in a Django app by adding listings, including images and seller profiles, via the admin panel; fix missing user attributes and customize listing display.
Render listings as cards on the home page by looping over database results and creating a top section with a filter form using Django templates and Bootstrap.
Explore django templates by including templates within templates to render listing cards on the home page, using a reusable listing_card component and context like image, seller, and updated add.
Create a Django list page by adding a list template that extends base.html with crispy forms, implement a login-protected get list view to render list.html, and map /list/.
Learn to create custom Django forms for a listing and its location using model forms and fields, render two forms on a page, and handle multipart data with crispy forms.
Learn how to handle Django form data to create listing and location from post and files, validate both forms, use commit false to assign seller (request.user), and redirect home.
Master Django filters to filter listings in Django, attach filters to models, render forms with crispy forms, and apply querysets on the home page via get requests.
Learn to build the view page to display listing details and the profile and edit pages, enabling users to view, edit, and manage their listings in a Django web app.
Learn to build a django listing view that renders a listing page from a url with a string id parameter, handles invalid ids, and passes the listing to the template.
Learn to expose the listing ID in the django admin and mark fields as read-only using readonly_fields on a custom admin class, then test the view page with valid IDs.
Tackle a Django challenge by implementing a view function that navigates to the listing page when the view button is clicked, using the listing ID to form the URL.
Wire the view button to the listing URL using Django's template URL tag, passing the listing id as a parameter to create the correct path to the listing page.
Display a Django listing page with image, title, seller, and location, plus a dynamic specs table. Capitalize brand and style with Bootstrap while showing description and contact options.
Decorate a Django class-based profile view with login-required protection, implement get and post handling, render the user profile template, and wire the profile URL and header link.
Demonstrates building a profile page that displays and edits user, profile, and location data via Django model forms, prefilled from the current user and rendered with Bootstrap and crispy forms.
Implement post handling on the profile page to save updated user, profile, and location data via three forms, updating existing instances and showing a success message.
Filter the listing model to show a user's listings by matching the seller profile to request.user, using Django queryset filter, and pass results to the profile template.
Add a function-based edit_view with login required to edit user listings, render views/edit.html with crispy forms, and map the url listing/<id>/edit with validation and home redirect on invalid id.
Connect homepage edit buttons to the Django edit page via URL templates, then implement listing and location forms, post updates, validate, save, and redirect with messages.
Explore how to extend a Django app with email sending, asynchronous tasks, and template customization, including updating profile photo display, implementing like interactions, and wiring an email action from listings.
Implement a custom Django form widget for image fields, including rendering a preview and integrating it into the profile form. Update the bio field to use a larger text input.
Create a liked listing model to store which user profile liked which listing, using foreign keys and cascade delete, with an auto_now_add date and admin registration.
Implement a profile page feature to display listings a user has liked by querying the LikeListing model and passing results to the profile template via context in Django.
Implement asynchronous like functionality using JavaScript and jQuery to call a Django endpoint that toggles a listing like via get_object_or_404 and get_or_create, returning JSON.
Explore how to integrate jQuery in a Django app to perform asynchronous like and dislike actions using AJAX, CSRF tokens, and server endpoints.
Implement asynchronous like and unlike actions in a Django app using Ajax and jQuery, updating a heart SVG fill based on server response and initial user likes.
Learn to use django-environ to read environment variables from a .env file or system environment in Django, securing the secret key and configuring debug for development and production.
Configure Django to use an SMTP backend with Mailgun on Heroku, test the setup with a test email, and enable a send email button for listing interactions.
Learn to send emails in Django by building an endpoint, configuring a mail gun sandbox, and triggering email notifications via ajax from the front end.
Deploy your Django web application to production by following the videos that guide you to prepare the app for production and ship it to Heroku servers for internet serving.
learn to deploy a django app to production on heroku, attach a heroku postgres database, configure environment variables, install psycopg2, run migrations, and verify production data access.
Connect your Django app to Amazon S3 storage with Django storages, configure environment variables for access keys and bucket name, and store media off ephemeral dynos for reliability.
Configure a Django app to read an environment variable and switch between debug and production modes, enforce allowed hosts, and connect to production or debug databases.
Learn to serve static files in Django production with white noise, configure middleware, and run collectstatic to prepare assets.
Set up gunicorn as a production HTTP server for Django, replacing the dev server with a production-grade deployment on Heroku by installing gunicorn and running it against the Django app.
learn how to deploy a Django app to Heroku by configuring environment variables, creating a proc file, runtime and requirements files, initializing git, connecting to Heroku, and pushing to production.
Remove the static folder entry from .gitignore, commit changes, and push to Heroku to ensure Django static assets upload and the app runs in production.
Verify app functionality by testing deployment on Heroku, logging in as a superuser, inspecting the admin panel, creating car listings with images, registering users, and validating filters and interactions.
Fix bugs in a Django app by adding null checks for a profile image, redirecting after profile updates, and enabling email edits, then deploying fixes to Heroku.
Welcome to The Complete Django Web Development Course. The most comprehensive Django course available online. Covering all the fundamental concepts regarding Django development, using the latest Django 4.0 version.
I’ve built this course over months, perfecting the curriculum to ensure that you come out of this course as a fully-fledged Django developer. I’ll take you from scratch and make you into a skilled Django developer with a strong knowledge of building full-stack web applications.
This course will teach Django & Python from scratch, NO prior knowledge of either of the two is required! And you certainly don't need any advanced web development experience. As long as you understand the fundamental concepts of HTML, CSS, and Javascript this course will teach you everything else.
You'll learn Django not only in theory but we'll build a complex, real-world, feature-rich web application throughout this course. The project known as AutoMax will include all features of a modern web application.
WHAT DOES THIS COURSE FEATURE?
I'll take you step-by-step through engaging and fun video tutorials and teach you everything you need to know to succeed as a Django developer.
The course includes 17+ hours of HD video tutorials and builds your programming knowledge while making a real world web application.
By the end of this course, you will be fluent in Python programming and be ready to build your own Django apps and become a full stack Django developer.
You'll also have a feature-rich application built by the end of this course that you can show off to any potential employer.
By the end of this course, you’ll have mastered the skills of developing high-performance, feature-rich, and engaging web apps using Django.
WHAT TOPICS WILL BE COVERED?
I know that you're here because you value your time. If you wanted to watch someone program for hours and hours without explaining what they're doing, you'd be on YouTube.
By getting this course, you can be rest assured that the course is carefully thought out and edited. There are beautiful animations that explain all the difficult concepts and I’m always on hand to answer student questions.
Fundamental Django Concepts:
Models
Views
ORM
Middleware
Signals
Mail System
Cookies
Storage
Forms
Static Assets
Templates
Security
Sessions
and much more.
Fundamental Python Concepts:
Variables
Conditional Statements
Control Flow
Tuples
Lists
Dictionaries
Functions
Classes
Error Handling
and much more.
Detailed Setup Instructions: For both MacOS and Windows.
Object-Oriented Programming
Software Design: How to organize and format code for readability and how to implement the Model View Controller (MVC) design pattern.
Debugging & Testing
Deployment To Production
WHAT ELSE DOES THIS COURSE OFFER?
– Deep, Fine-Grained Learning – This course is jam-packed with information. I made the course that I most wanted to take and as a result, I didn't skimp on the details. You're going to cover more topics and material in greater depth than ever before.
– 100% Real-World Practice – My goal is to get you writing code as much as possible. And not just any code–we'll be working exclusively on practical tasks that are instrumental in building your own amazing real-world apps.
– No-Nonsense, Spot-On Explanations - Every lesson is to the point. I break down what we're making, how we'll be doing it, and what the final product will look like, all on top of helpful and illustrative descriptions to aid your understanding along the way.
I really enjoyed making this course and I think you’ll enjoy taking it just as much.
This course is eligible for the Codestars Certificate Authority (CCA) certificate. Students can take the official exam via codestarscom, and those who pass the quiz will receive their CCA certificate. (more details in the course!)
Looking forward to seeing you taking this course!