Course Overview
Are you ready to level up your web development skills? Master modern full stack development using Django 5, TailwindCSS, and HTMX.
What You'll Learn
In this comprehensive, project-based Django course, you'll build a complete, production-ready web application from the ground up. We'll learn Django to create robust projects without having to re-invent the wheel! We cover:
Set up a Python environment and your Django projects
Understand Model-View-Controller, requests, and responses
Work extensively with Django templates
Add relationships between models (such as one-to-many or many-to-many)
Use the Django ORM to query and aggregate data from your database
Use and customize the powerful Django admin panel
Handle user input with Django forms
Generate forms automatically using Django models
Add extensive authentication and social sign-on, including email confirmation
Learn how to cache, compress, and serve static assets in production
Plus you'll also learn an entire ecosystem around Django:
TailwindCSS: Design sleek, responsive user interfaces
HTMX: Add dynamic features without complex JavaScript
PostgreSQL: Manage data with a production-grade database
Docker & Docker Compose: Containerize your web application for easy deployment
Authentication: Implement secure user systems with Django-allauth, including social sign on
Markdown Editor: Integrate rich text editing capabilities with your Django project
Deployment: Take your Django project live on Railway
By the end of this course, you'll have the skills to develop, design, and deploy full stack Django web applications using cutting-edge technologies.
Why Choose This Course?
Project-Based Learning: Build a real-world Django application from start to finish
Comprehensive Tech Stack: Go beyond basic Django with modern tools and practices
Clear, Concise Explanations with Hand-Written Subtitles: Suitable for non-native English speakers
Practical Skills: Learn techniques used in professional web development environments
Up-to-Date Content: Stay current with the latest web development trends
No more piecing together fragmented tutorials or outdated resources. This course provides a cohesive learning experience that will take you from foundational concepts to advanced techniques in Django full stack development.
Join us to level up your web development skills. Whether you're aiming to boost your career prospects or bring your web application ideas to life, this course will give you the tools and knowledge you need to succeed.
Enroll now and start your journey to becoming a proficient full stack Django developer.
See you in the course!
FAQ
FAQ area empty
Course curriculum
-
Introduction to HTML forms
368 -
HTML text input fields (input)
329 -
Let's code an HTML form!
0 -
HTML checkboxes and radio buttons (input)
454 -
HTML text areas (textarea)
487 -
HTML dropdowns (select and option)
272 -
Form submissions (method and action)
170 -
Form accessibility and autocomplete
367 -
Let's code a complete HTML form with multiple input types!
0
-
Introduction to CSS and selectors
322 -
CSS units
420 -
Review: CSS fundamentals!
-
The CSS box model
250 -
How does border-box work?
159 -
Review: the CSS box model
-
CSS selector specificity
285 -
CSS positioning (relative, absolute, fixed, and sticky)
665 -
Review: CSS selectors and positioning
-
Working with colors in CSS
374 -
Working with typography in CSS
318 -
Review: colors and typography in CSS
-
Pseudoclasses and pseudoelements
301
-
Section intro, and can you skip it?
61 -
Variables in Python
506 -
Review: variables in Python
-
String formatting with f-strings (and other)
386 -
Getting user input with Python
316 -
Review: string formatting and user input
-
Lists, tuples, and sets in Python
391 -
Review: lists, tuples, and sets
-
Advanced Python set operations
279 -
Working with booleans in Python
299 -
Flow control: if statements in Python
497 -
Review: booleans and if statements
-
The 'in' keyword in Python
122 -
Using the 'in' keyword in if statements with Python
498 -
Review: The 'in' keyword and 'if' statements
-
Python loops: for and while
667 -
Review: loops in Python
-
List comprehensions in Python
444 -
Review: list comprehensions
-
Working with Python dictionaries
511 -
Review: Python dictionaries
-
Destructuring variables in Python
508 -
Review: destructuring variables
-
Functions in Python
641 -
Review: functions
-
Function arguments and parameters in Python
460 -
How to set default parameter values for functions in Python
234 -
How to return values from functions in Python
439 -
Anonymous or lambda functions in Python
472 -
Dictionary comprehensions in Python
241 -
Unpacking arguments with Python (*args)
624 -
Unpacking keyword arguments with Python (**kwargs)
524 -
Object-Oriented Programming in Python
952 -
Magic Python methods: __str__ and __repr__
385 -
@classmethod and @staticmethod in Python
843 -
Class inheritance in OOP with Python
512 -
Class composition in OOP with Python
368 -
Type hinting with Python
308 -
How do imports work in Python?
573 -
Relative imports in Python (and why you should avoid them)
532 -
Dealing with errors and exceptions in Python
767 -
Create custom error classes in Python
304 -
What are first-class functions in Python?
472 -
Simple decorators in Python
432 -
The 'at' syntax for decorators in Python
212 -
Decorating functions with parameters
144 -
Coding decorators with parameters
290 -
What does 'mutability' mean in Python?
363 -
Mutable default function parameters (and why they're a bad idea)
267
-
Intro to this section
26 -
How to install pyenv and Python on Windows
120 -
How to install pyenv and Python on Mac
94 -
How to install Poetry on Windows
94 -
How to install Poetry on Mac
82 -
How to install VSCode on Windows
70 -
How to install VSCode on Mac
51 -
How to set up a virtualenv and install dependencies on Windows
208 -
How to set up a virtualenv and install dependencies on Mac
170 -
How to start a Django project on Windows
103 -
How to start a Django project on Mac
106 -
How to run migrations, create a superuser, and access the admin panel on Windows
76 -
How to run migrations, create a superuser, and access the admin panel on Mac
76 -
How to create a Django app on Windows
72 -
How to create a Django app on Mac
73
-
Intro to this section
51 -
How to create and register Django models
494 -
How to create and run database migrations
329 -
How to show all our articles in the homepage
519 -
Introduction to Django Forms
295 -
What are browser cookies?
176 -
What are CSRF attacks?
472 -
Creating a view that uses a form with Django
471 -
Creating articles in our app with Class-Based Views
295 -
Adding the other app endpoints with CBVs
427 -
Cleaning up our article URLs
86 -
What is HTML escaping and how does it work in Django?
147
-
Intro to this section
16 -
How to create a base template in Django
185 -
Updating our templates to extend our base template
115 -
What are Django filters?
231 -
How to add navigation between pages in Django
297 -
How to render things conditionally in Django templates
156 -
Calculating the word count dynamically in our articles
386 -
How to add the word count to our templates
157 -
How to customize the Django admin panel fields
190
-
Intro to this section
67 -
How to add a user relationship to a Django model
312 -
How to set the article creator in the form of a Class-Based View
81 -
How to add log in and log out pages with Django
428 -
How to require login in Django CBVs
470 -
How to set up django-allauth
167 -
How to use django-allauth URLs in our project
289 -
How to set up social authentication with django-allauth
106 -
How to create a GitHub OAuth app
90 -
How to add new social apps with django-allauth
168 -
How to set up Django to log in with email instead of username with allauth
199 -
How to customize the UserProfile admin page
527 -
How do translations and localization work in Django?
335 -
How to add translations to our Django admin panel
426 -
Create a custom UserManager to use the email field in Django
639
-
How to install NodeJS on macOS
211 -
How to install NodeJS on Windows
219 -
How to install and set up TailwindCSS
446 -
TailwindCSS Plugins for easier styling
-
Automatic browser reloading with django-browser-reload
151 -
Adding django_widget_tweaks
74 -
Creating button styles with TailwindCSS
655 -
Styling our navigation bar with TailwindCSS
361 -
Customize your TailwindCSS theme by creating a box shadow underline
423 -
Theme customization in TailwindCSS v4
-
Changing menu styles depending on which page we're on
250 -
Styling the user's dashboard
837 -
Styling the article delete form (+ working with svg icons in Django)
516 -
Refactoring the base_form layout template to reduce duplication
277 -
Styling the article form templates (styling forms with Django and widget_tweaks)
562 -
Styling the Django allauth log in page
813 -
A look at the Django allauth element structure
186 -
Styling the social sign on provider element
134 -
Styling the errors list in our login page
58 -
The key features of our landing and signup page
131 -
Creating a responsive structure for our signup and landing page
359 -
Styling the signup form in our landing page
402 -
Styling form errors in the signup page
222 -
How to style the HTML details element for disclosures
520 -
Improvements to our base template to work across apps
373 -
Styling the main allauth layout
81 -
Allauth elements: styling the button
101 -
Allauth elements: styling the form and field
470 -
Allauth elements: styling the titles
101 -
Some final improvements and styles in our base template
286 -
Making the signup page our landing page
145 -
Where we are at the end of this section
93
-
Intro to this section
37 -
How to add pagination to a Django ListView
160 -
How to implement pagination in our Django templates
261 -
How to add PostgreSQL full text search to our Django app
75 -
How to add search to a Django ListView
122 -
How to implement search in our Django templates
359 -
How to get search and pagination working together in Django
169
-
Introduction to this section
51 -
What is HTMX?
186 -
Adding HTMX to our project
-
How to implement modal windows with HTMX and Django
666 -
Active Search with Django ListViews in 4 lines of code
469 -
Adding a request indicator with HTMX, SVGs and TailwindCSS
303 -
How to add animations using TailwindCSS
131 -
How to disable elements while requests are happening
127 -
Handling browser history changes with HTMX
240
-
Intro to this section
48 -
How to set up your Mailgun account
223 -
How to send an email with Python and Mailgun
254 -
Adding email confirmation to our Django-allauth application
298 -
Removing the password confirmation field from our signup form
32 -
Automatically verify the superuser account in the database migration
288
-
Intro to deployments to Railway
32 -
Django settings changes for production
436 -
Adding new dependencies for our Django app in production
253 -
Using whitenoise for serving static assets with Django
297 -
Getting set up with GitHub and Railway
150 -
Git and GitHub set-up for our application
355 -
Deploying our app to Railway
187
-
Getting started with Playwright
275 -
How to install playwright and run tests
371 -
Docker stages: how to handle dev and prod in your Dockerfile
230 -
Our first automated browser test with Playwright
687 -
The Page Object Model pattern for browser tests
207 -
Playwright locators and finding elements
539 -
Testing our Django signup page with playwright
381 -
Performing actions on the page with the Page Object Model pattern
115 -
Creating a verified user for our tests that require authentication
242 -
Setting up an authenticated browser page with the Django test client
228 -
Browser testing our empty articles page
257 -
Browser testing the article search controls
529 -
Browser testing creating new articles
670 -
How to run pytest tests in parallel
134
Requirment
-
Some Python knowledge will be helpful, although we include a full Python refresher
-
No HTML or CSS knowledge is necessary
-
No software is required, everything used is installed in the course
-
No prior Django knowledge required!
Outcomes
-
Code a full stack Django app using HTML, TailwindCSS, HTMX, and AlpineJS
-
Set up a local Django development environment with Docker and Docker Compose
-
Use Django Class-Based Views to set up advanced filtering and pagination
-
Add Social Sign On to your Django apps with django-allauth
-
Learn HTML and CSS from scratch, including semantic HTML, CSS flex, and CSS grid
-
Learn to integrate a rich text editor with your Django apps
0 Student
2 Courses
0 review