Python Tutorial
Install Django
With the virtual environment active, install Django and confirm the django-admin command works.
Install With pip
Make sure (.venv) is showing in your terminal, then:
python -m pip install djangoTo pin a major version:
python -m pip install "django>=5.0,<6.0"Confirm the Install
python -m django --version
# 5.1.3You can also call the helper that ships with Django:
django-admin --versionFreeze Requirements
Save the exact versions so teammates (and production) install the same stack:
python -m pip freeze > requirements.txtLater, restore them with:
python -m pip install -r requirements.txtWhere Django Lives
Packages install inside .venv, not globally. If django-admin is "not recognized", the venv is not active — activate it and try again.
📘 Real-World Deep Dive
Knowing <strong>Django Install (Django)</strong> well is what turns Django from a curiosity into a daily tool — you'll reach for it in nearly every real project.
Real-Life Scenario
An end-to-end usage of Django Install that you'd actually see in a data pipeline or analytics notebook.
Real-Life Example
# Create and enter a fresh virtualenv, then:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install "django>=5.0"
django-admin --versionExpected Output
(no output)Common mistakes
- Forgetting to call
.save()on a model instance after mutation silently persists nothing. - Reading every row with
Model.objects.all()on a 1 M-row table OOMs the worker — use.iterator()for streaming. - Queries inside loops produce N+1 problems — pull related rows with
select_related/prefetch_related. - Treating Django Install as a black box without reading the docs — the API has subtle defaults that bite when you scale.
🚀 Performance & Best Practices
- Add database indexes (
db_index=TrueorMeta.indexes) on columns used infilter. - Use
cache_pageon read-heavy views and setCONN_MAX_AGEto keep DB connections warm. - Generate migrations with
python manage.py makemigrations --dry-run --verbosity 3and review before committing. - When working with Django, prefer vectorised / batched operations over Python loops.
🧪 Try It Yourself
- Reproduce the snippet on a representative slice of your own data.
- Profile the snippet with
cProfileortimeitand find the single biggest improvement. - Generalise the snippet into a small, reusable function you can drop into future projects.