Full Stack Web Development with Django 5, TailwindCSS, HTMX
-
Introduction
-
HTML Fundamentals
-
All the main HTML elements
-
HTML FormsIntroduction to HTML forms0sHTML text input fields (input)0sLet’s code an HTML form!HTML checkboxes and radio buttons (input)0sHTML text areas (textarea)0sHTML dropdowns (select and option)0sForm submissions (method and action)0sForm accessibility and autocomplete0sLet’s code a complete HTML form with multiple input types!
-
Semantic HTML
-
HTML meta tags
-
CSS fundamentalsIntroduction to CSS and selectors0sCSS units0sReview: CSS fundamentals!The CSS box model0sHow does border-box work?0sReview: the CSS box modelCSS selector specificity0sCSS positioning (relative, absolute, fixed, and sticky)0sReview: CSS selectors and positioningWorking with colors in CSS0sWorking with typography in CSS0sReview: colors and typography in CSSPseudoclasses and pseudoelements0s
-
CSS flex and grid
-
A Complete Python RefresherSection intro, and can you skip it?0sVariables in Python0sReview: variables in PythonString formatting with f-strings (and other)0sGetting user input with Python0sReview: string formatting and user inputLists, tuples, and sets in Python0sReview: lists, tuples, and setsAdvanced Python set operations0sWorking with booleans in Python0sFlow control: if statements in Python0sReview: booleans and if statementsThe ‘in’ keyword in Python0sUsing the ‘in’ keyword in if statements with Python0sReview: The ‘in’ keyword and ‘if’ statementsPython loops: for and while0sReview: loops in PythonList comprehensions in Python0sReview: list comprehensionsWorking with Python dictionaries0sReview: Python dictionariesDestructuring variables in Python0sReview: destructuring variablesFunctions in Python0sReview: functionsFunction arguments and parameters in Python0sHow to set default parameter values for functions in Python0sHow to return values from functions in Python0sAnonymous or lambda functions in Python0sDictionary comprehensions in Python0sUnpacking arguments with Python (*args)0sUnpacking keyword arguments with Python (**kwargs)0sObject-Oriented Programming in Python0sMagic Python methods: __str__ and __repr__0s@classmethod and @staticmethod in Python0sClass inheritance in OOP with Python0sClass composition in OOP with Python0sType hinting with Python0sHow do imports work in Python?0sRelative imports in Python (and why you should avoid them)0sDealing with errors and exceptions in Python0sCreate custom error classes in Python0sWhat are first-class functions in Python?0sSimple decorators in Python0sThe ‘at’ syntax for decorators in Python0sDecorating functions with parameters0sCoding decorators with parameters0sWhat does ‘mutability’ mean in Python?0sMutable default function parameters (and why they’re a bad idea)0s
-
Django local dev environment (project setup and configuration)Intro to this section0sHow to install pyenv and Python on Windows0sHow to install pyenv and Python on Mac0sHow to install Poetry on Windows0sHow to install Poetry on Mac0sHow to install VSCode on Windows0sHow to install VSCode on Mac0sHow to set up a virtualenv and install dependencies on Windows0sHow to set up a virtualenv and install dependencies on Mac0sHow to start a Django project on Windows0sHow to start a Django project on Mac0sHow to run migrations, create a superuser, and access the admin panel on Windows0sHow to run migrations, create a superuser, and access the admin panel on Mac0sHow to create a Django app on Windows0sHow to create a Django app on Mac0s
-
Build a “Hello World” App with Django
-
Capstone Project Part 1 – Django FundamentalsIntro to this section0sHow to create and register Django models0sHow to create and run database migrations0sHow to show all our articles in the homepage0sIntroduction to Django Forms0sWhat are browser cookies?0sWhat are CSRF attacks?0sCreating a view that uses a form with Django0sCreating articles in our app with Class-Based Views0sAdding the other app endpoints with CBVs0sCleaning up our article URLs0sWhat is HTML escaping and how does it work in Django?0s
-
Capstone Project Part 2 – Advanced Django and CustomizationIntro to this section0sHow to create a base template in Django0sUpdating our templates to extend our base template0sWhat are Django filters?0sHow to add navigation between pages in Django0sHow to render things conditionally in Django templates0sCalculating the word count dynamically in our articles0sHow to add the word count to our templates0sHow to customize the Django admin panel fields0s
-
Running Django Apps with Docker
-
Django Apps Setup Improvements
-
Django authentication and social-sign on with django-allauthIntro to this section0sHow to add a user relationship to a Django model0sHow to set the article creator in the form of a Class-Based View0sHow to add log in and log out pages with Django0sHow to require login in Django CBVs0sHow to set up django-allauth0sHow to use django-allauth URLs in our project0sHow to set up social authentication with django-allauth0sHow to create a GitHub OAuth app0sHow to add new social apps with django-allauth0sHow to set up Django to log in with email instead of username with allauth0sHow to customize the UserProfile admin page0sHow do translations and localization work in Django?0sHow to add translations to our Django admin panel0sCreate a custom UserManager to use the email field in Django0s
-
More article features and markdown editor
-
Running with Docker Compose
-
Complete Styling with TailwindCSSHow to install NodeJS on macOS0sHow to install NodeJS on Windows0sHow to install and set up TailwindCSS0sTailwindCSS Plugins for easier styling0sAutomatic browser reloading with django-browser-reload0sAdding django_widget_tweaks0sCreating button styles with TailwindCSS0sStyling our navigation bar with TailwindCSS0sCustomize your TailwindCSS theme by creating a box shadow underline0sChanging menu styles depending on which page we’re on0sStyling the user’s dashboard0sStyling the article delete form (+ working with svg icons in Django)0sRefactoring the base_form layout template to reduce duplication0sStyling the article form templates (styling forms with Django and widget_tweaks)0sStyling the Django allauth log in page0sA look at the Django allauth element structure0sStyling the social sign on provider element0sStyling the errors list in our login page0sThe key features of our landing and signup page0sCreating a responsive structure for our signup and landing page0sStyling the signup form in our landing page0sStyling form errors in the signup page0sHow to style the HTML details element for disclosures0sImprovements to our base template to work across apps0sStyling the main allauth layout0sAllauth elements: styling the button0sAllauth elements: styling the form and field0sAllauth elements: styling the titles0sSome final improvements and styles in our base template0sMaking the signup page our landing page0sWhere we are at the end of this section0s
-
Getting started with AlpineJS
-
Message flashing with Django
-
Search and pagination with DjangoIntro to this section0sHow to add pagination to a Django ListView0sHow to implement pagination in our Django templates0sHow to add PostgreSQL full text search to our Django app0sHow to add search to a Django ListView0sHow to implement search in our Django templates0sHow to get search and pagination working together in Django0s
-
Django and HTMXIntroduction to this section0sWhat is HTMX?0sAdding HTMX to our projectHow to implement modal windows with HTMX and Django0sActive Search with Django ListViews in 4 lines of code0sAdding a request indicator with HTMX, SVGs and TailwindCSS0sHow to add animations using TailwindCSS0sHow to disable elements while requests are happening0sHandling browser history changes with HTMX0s
-
Email confirmation with Mailgun and Django-allauthIntro to this section0sHow to set up your Mailgun account0sHow to send an email with Python and Mailgun0sAdding email confirmation to our Django-allauth application0sRemoving the password confirmation field from our signup form0sAutomatically verify the superuser account in the database migration0s
-
Deployments to RailwayIntro to deployments to Railway0sDjango settings changes for production0sAdding new dependencies for our Django app in production0sUsing whitenoise for serving static assets with Django0sGetting set up with GitHub and Railway0sGit and GitHub set-up for our application0sDeploying our app to Railway0s
-
Browser testing with playwrightGetting started with Playwright0sHow to install playwright and run tests0sDocker stages: how to handle dev and prod in your Dockerfile0sOur first automated browser test with Playwright0sThe Page Object Model pattern for browser tests0sPlaywright locators and finding elements0sTesting our Django signup page with playwright0sPerforming actions on the page with the Page Object Model pattern0sCreating a verified user for our tests that require authentication0sSetting up an authenticated browser page with the Django test client0sBrowser testing our empty articles page0sBrowser testing the article search controls0sBrowser testing creating new articles0sHow to run pytest tests in parallel0s
-
Continuous Integration with GitHub Actions
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!
What's included
- 19 hours on-demand video
- 5 articles
- 35 downloadable resources
- Access on mobile and TV
- Certificate of completion