RizTech Academy logo
RizTech Academy

Python Django Web Development

Build and deploy a real database-backed web application, from first model to production.

Django gives you an admin panel, authentication, an ORM and security defaults on day one. For a small team that is an enormous head start.

This course builds one real application across the whole course rather than a series of disconnected toy examples. You start with models and finish with the thing deployed, behind HTTPS, with tests.

It assumes you already know Python. If you do not, take the Python Complete Foundation course first — learning both together is how people end up confused about which is which.

Who this is for

  • Developers comfortable with Python basics
  • Anyone who wants a backend they can ship quickly
  • Interns on the Full-Stack track

What you need first

  • Python Complete Foundation, or equivalent Python experience
  • Basic HTML (the Web UI Foundation course covers this)
  • Comfort with the command line

Tools you will use

Django 5.xPostgreSQLDjango REST Frameworkpytest-djangoDocker

By the end you can

  • Model data properly and understand what the ORM is doing
  • Build views, templates and forms
  • Use the Django admin as a real operational tool
  • Implement authentication and permissions
  • Expose a REST API with Django REST Framework
  • Write tests for models and views
  • Deploy a Django application with a production database and static files
Syllabus

7 modules, 32 lessons

Work through these in order. Each lesson is short enough to finish in one sitting and ends with something to build, not a quiz.

  1. 1

    Getting Started

    Project setup and understanding how a request flows through Django.

    1. Why Django, and when not to use itComing soon
    2. Starting a project the right wayComing soon
    3. How a request flows through DjangoComing soon
    4. Apps, settings and project structureComing soon
  2. 2

    Models and the ORM

    Your data layer. Get this right and everything downstream is easier.

    1. Defining models and fieldsComing soon
    2. Migrations, and how to not get stuckComing soon
    3. ForeignKey, ManyToMany and OneToOneComing soon
    4. QuerySets and filteringComing soon
    5. select_related, prefetch_related and the N+1 problemComing soon
    6. The Django admin as an operations toolComing soon
  3. 3

    Views, Templates and Forms

    Turning data into pages people can use.

    1. Function-based views and URLsComing soon
    2. Templates and template inheritanceComing soon
    3. Class-based views and when they helpComing soon
    4. Forms and ModelFormsComing soon
    5. Messages, redirects and the POST-redirect-GET patternComing soon
    6. Static files and user uploadsComing soon
  4. 4

    Authentication and Permissions

    Users, login, and controlling who can do what.

    1. The user model, and customising it earlyComing soon
    2. Login, logout and password resetComing soon
    3. Permissions and access controlComing soon
    4. Django’s security defaults and what you must not disableComing soon
  5. 5

    Building an API

    Exposing your data to a mobile app or frontend.

    1. Django REST Framework: serializers and viewsComing soon
    2. ViewSets, routers and paginationComing soon
    3. Token authentication for APIsComing soon
    4. Testing your APIComing soon
  6. 6

    Testing and Quality

    Confidence that a change did not break something else.

    1. Testing models and business logicComing soon
    2. Testing views and formsComing soon
    3. Fixtures and factoriesComing soon
  7. 7

    Deployment

    Getting it live, safely.

    1. Settings, environment variables and secretsComing soon
    2. Moving from SQLite to PostgreSQLComing soon
    3. Static files and media in productionComing soon
    4. Containerising a Django appComing soon
    5. Deploying, HTTPS and the launch checklistComing soon

Learning this with a mentor is faster

Our internship programme is free and fully remote. You get this curriculum, real project work, and code review from working developers.