Complete Application with Django: From Design to Production

Complete Application with Django is an advanced-level course of 5 lessons (about 5 h 38 min), with 16 exercises and 15 quiz questions. Prerequisites: Django Fundamentals, Responsive Layout (Flexbox, Grid). The course needs a full project environment, planned for a later phase of the platform.

  • Python for the web
  • Advanced
  • 5 lessons
  • 5 h 38 min
  • 16 exercises
  • Full project environment (phase 2)

The course in brief

This advanced course walks you through building a complete web application with Django, modeled on a project management tool. You structure the project and its configuration, secure accounts and access rights, optimize the ORM, build a responsive CRUD interface enhanced with JavaScript, then test the application and prepare it for production.

What you will be able to do

  • Structure a professional Django project configured through environment variables, with a custom user model
  • Set up authentication and object-level and role-based access control
  • Model complex relationships and eliminate N+1 queries
  • Build a paginated CRUD interface with generic views, JSON endpoints and fetch
  • Test the application, harden its configuration and deploy it with Gunicorn, PostgreSQL and WhiteNoise

Syllabus: 5 lessons

    • Split a project into coherent apps and define a custom user model from the start
    • Move configuration (secrets, DEBUG, hosts, database) into environment variables
    • Organize templates, static files and uploaded files

    Project architecturePer-environment configurationCustom user model

  1. 02

    Authentication and Authorization

    20 min
    • Set up login, logout and sign-up with the tools of django.contrib.auth
    • Protect views with login_required, LoginRequiredMixin or LoginRequiredMiddleware
    • Apply authorization: permissions, groups and object-level access control

    AuthenticationPermissionsObject-level access control

  2. 03

    ORM Relationships and Performance

    20 min
    • Model many-to-one and many-to-many relationships with constraints and indexes
    • Detect and fix the N+1 problem with select_related and prefetch_related
    • Compute metrics in the database with annotate, filtered Count, F and transactions

    ForeignKey and ManyToMany relationshipsThe N+1 problemAnnotations and expressions

  3. 04

    Generic Views, JSON API and Responsive Interface

    20 min
    • Build CRUD screens with ListView, DetailView, CreateView, UpdateView and DeleteView
    • Paginate lists and filter the queryset by user
    • Expose data as JSON and consume it in JavaScript with fetch and the CSRF token, in a responsive layout

    Class-based generic viewsPaginationJSON responses and fetch

  4. 05

    Tests, Security and Going to Production

    20 min
    • Write model and view tests with TestCase and the test client
    • Harden the production configuration and use check --deploy
    • Deploy with Gunicorn, PostgreSQL, collectstatic and WhiteNoise

    Django testsProduction securityDeployment

Final project

Atelier: A Project Management Application in Production

Finish and launch the Atelier application: sign-up and login, projects with an owner and invited members, labeled tasks with due dates, a progress dashboard computed in the database, a responsive interface with JavaScript task toggling, a JSON metrics endpoint, a test suite covering access rights, and deployment with a production configuration validated by check --deploy.

Deliverables

  • The project's Git repository (comptes and projets apps, templates, static files, migrations)
  • A suite of at least fifteen tests, including access-denial tests and assertNumQueries
  • A Dockerfile or hosting configuration, a .env.example and a deployment README
  • The URL of the deployed application or a recorded demo

Assessment criteria

  • No user can see or modify another user's data (verified by tests)
  • List pages and the dashboard have no N+1 queries
  • The code uses generic views, mixins and models with appropriate constraints
  • The interface is responsive and accessible, and the JavaScript interactions respect CSRF protection
  • The production configuration is secure: DEBUG disabled, secrets outside the repository, HTTPS, check --deploy with no warnings

Frequently asked questions

What level do I need to take this course?

You need to master the Django fundamentals (URLs, views, models, ORM, templates, forms) and the basics of responsive layout in CSS.

What application do you build?

A project and task management application with user accounts, members, access rights, a dashboard, JavaScript interactions and a JSON API, ready for production.

Does the course cover deployment in practice?

Yes: configuration through environment variables, check --deploy, HTTPS, collectstatic with WhiteNoise, Gunicorn, PostgreSQL and migrations on every deployment, plus an example Dockerfile.

Is Django REST framework covered?

The course shows how to expose data as JSON with JsonResponse and consume it with fetch; Django REST framework is presented as the next step toward a full API.

This course, told for your job

Say what you want to be able to do: “Complete Application with Django” takes its place in your path, with examples from your field. The concepts stay those of the course.

The preview is free, and you can take the courses one at a time without paying. The path only contains lessons from the catalogue.