Welcome

Step-by-Step Introduction to the [Django] Web Framework

created by Anthropic’s AI Claude at the request of Serge Tahé - September 2026


This document is a translation of the original French version, generated using an automated tool. Some expressions or technical terms may not fully reflect the original meaning.

This course shows, step by step, how to build an MVC web application with the Django 6.1 framework and Python. The HTML pages are generated by the server with Django templates (the DTL language), with no JavaScript framework in the browser, and data access goes through the Django ORM.

It has two parts. First come 28 small examples, each focused on a single concept: routes (urls.py, path, include), views, responses, redirects and middleware; request parameters, data classes and forms used as validators; DTL templates, parent template, tags and filters, Django forms, the Post / Redirect / Get pattern, messages and CSRF protection; internationalization with gettext; data scopes (request, session, cache, signed cookies); the request life cycle with middleware and signals; JWT authentication in a cookie, roles, captcha and rate limiting; and finally a layered web / business / DAO architecture with the Django ORM and MySQL, with transactions and optimistic locking.

Then comes a complete case study, RdvMedecins: an appointment-booking application for a medical practice, with three roles (administrator, doctors, patients), available in French and English, in which every file is commented.

Prerequisites: the basics of web programming (HTTP, HTML) and of the Python language (variables, lists, dictionaries, functions, classes, modules). The tools used are Python 3.12 or later, MySQL or MariaDB, Visual Studio Code and curl.

This course belongs to a series that covers the same 28 examples, number by number, with other frameworks: NestJS, ASP.NET Core MVC, Spring MVC, Flask, Laravel and Symfony. The frameworks can thus be compared example by example, but this course can be read on its own.

All courses by Serge Tahé