Build and Deploy a Real Web App with Django

20 lessons. Build a project tracker with Django: accounts, models, forms, ownership permissions, search, pagination, automated tests, and deployment. Run the project locally with downloadable checkpoints.

Python learners ready to build a complete web application.

Before you start: Python functions and collections. Classes, HTML, CSS, HTTP, and local setup are introduced in the course. Learn these basics in Python Foundations.

20 lessons · Local project tasks and downloadable checkpoints. 2 free lessons. No account needed for free previews.

What you will learn

  • Build a project tracker with accounts, tasks, search, and pagination.
  • Protect each user’s data and test forms, views, and permissions.
  • Prepare and deploy a Django application with PostgreSQL and a production web server.

Build the project on your computer

Get every lesson, local project task, and project download with the $49 Django course, Course access, or the Complete Bundle. The first two lessons and starter are free. This course uses your local Python installation.

Project downloads

Ready to put your project online? Compare beginner hosting options. Hosting is optional and purchased separately; you can complete this project locally.

← All courses and learning paths · Suggested next course: Debugging and Testing Code — Python

Course lessons

01How the web works: HTML, CSS, requests, and formsTrace a browser request and write a labeled HTML form without assuming the browser owns application data.Free preview02Set up Python and serve your first Django pageCreate an isolated Django environment, run a local server, and identify a view response.Free preview03Map URLs to views and name your routesResolve a URL to a view and reverse a named route without hardcoding object paths.Course04Build reusable templates and serve CSS locallyRender a context in a template and keep content, page structure, and styling separate.Course05Model projects, tasks, and ownershipDefine model relationships and explain where ownership is stored.Course06Create migrations and inspect data with the adminApply a reproducible schema change and use the admin to inspect synthetic records.Course07Query the ORM and render project listsFilter rows for the signed-in owner and distinguish a QuerySet from a materialized result.Course08Validate input with ModelFormsValidate submitted fields and assign trusted ownership after form validation.Course09Create, edit, and delete with deliberate POST actionsImplement form changes using POST, preserve validation errors, and redirect after success.Course10Register, sign in, and sign out with Django authenticationUse built-in account forms and session authentication without handling password hashes yourself.Course11Enforce ownership on every object operationProtect lists, details, edits, deletes, and task creation with the same owner boundary.Course12Add task status, optional dates, and useful validationValidate task choices and dates while keeping parent assignment on the server.Course13Search, filter, and paginate without losing contextPaginate an owned filtered QuerySet and preserve normalized filters in page links.Course14Make forms and layouts usable on a narrow screenProvide semantic labels, visible focus, readable errors, and a layout that works with a keyboard.Course15Write model and form regression testsWrite assertions for behavior and boundaries using a disposable Django test database.Course16Test views, account isolation, and real CSRF rejectionExercise HTTP boundaries and assert that unauthorized requests leave data unchanged.Course17Debug errors and avoid a query for every rowFind a reproducible failure and measure database query behavior before optimizing.Course18Separate development from production settingsLoad production secrets from private configuration and verify deployment settings before startup.Course19Prepare PostgreSQL, static files, Gunicorn, and HTTPSDescribe and prepare a production deployment with separate application, database, and static delivery.Course20Finish the capstone and practice backup and recoveryValidate the complete tracker and plan an update or recovery without overwriting newer data.Course