Set up Python and serve your first Django page

You can run the entire project on your own computer. The free starter contains a minimal first page and one test. You do not need a hosting account or a payment service.

Learning objective

Create an isolated Django environment, run a local server, and identify a view response.

Sign in to save items for review and keep private notes.

Before you start

Complete the earlier lessons in order, or use the most recent project checkpoint. Run commands from the folder containing manage.py.

Explanation

Install a supported Python release first and check its version. The course supports Python 3.12–3.14 with Django 5.2 LTS. A virtual environment keeps these dependencies separate from other Python projects. It is a directory of installed packages, not a security sandbox. Work in a new folder and do not upload personal data.

Download and extract the starter linked below. The folder containing manage.py is the project root. manage.py chooses a Django settings module and dispatches commands such as test and runserver. A project contains configuration shared by one website; an app contains a feature such as our tracker. The starter deliberately has no models or accounts yet.

On macOS/Linux use the commands below. On Windows use py -m venv .venv, then .venv\Scripts\Activate.ps1. If PowerShell prevents activation, run .venv\Scripts\python.exe directly instead of changing machine-wide execution policy. After activation, python -m pip targets that environment. The development server uses 127.0.0.1:8000 by default. Stop it with Ctrl+C before switching checkpoints.

Worked example

Run this example in the stated environment. Use a disposable learning database with synthetic records.

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements.txt
python manage.py test
python manage.py runserver

Expected behavior

The starter test passes. Opening http://127.0.0.1:8000/ displays “Your first Django page”. The server stays running until stopped; this is not a production deployment.

Common mistakes

Running commands one directory above manage.py fails. Installing packages before activating the environment can affect another interpreter. A busy port can be changed with python manage.py runserver 8001.

Guided practice

Open config/urls.py in the starter. Change only the paragraph returned by home, refresh the page, then run the test again. Keep the tested heading unchanged.

Independent practice

Add a second paragraph describing your tracker idea. Verify that visiting /missing/ returns 404 and explain why the server has no matching route. Success means you can stop and restart the server without reinstalling anything.

Check your work

Keep a small record of your prediction, observed result, and one failing case. The task runs locally; StringClass's Mark complete button records self-study progress and does not execute or grade the project. Use the tests introduced later to protect behavior as the application grows.

Recap

Create an isolated Django environment, run a local server, and identify a view response.

References

Official documentation. Course examples target Django 5.2 LTS, Python 3.12–3.14. Editorial verification: October 26, 2026.

Project checkpoint

Download the starter checkpoint. Extract it into a new directory. Each checkpoint is a complete snapshot; never copy old migrations over a later database. Compare the named files with your working project before continuing.