Это не LMS-ДЗ. Данный раздел — закрепляющее задание по материалу практикума 4. Источник не содержит отдельного домашнего задания — ДЗ по теме Django было выдано в уроке 13 (ДЗ 7). Здесь предлагается самостоятельная практика для углубления навыков.
Задание: расширить проект вторым view и шаблоном
Цель
Взять Django-проект, который вы создали в ходе практикума 4, и добавить в него:
- Второе представление
about_view, которое рендерит HTML-шаблон - Шаблон
about.htmlс базовой HTML-структурой и переменной контекста - URL-маршрут
/about/к новому view - Закоммитить результат в git
Пошаговое решение
Шаг 1: Создать папку templates
# Структура папок
first_app/
├── templates/
│ └── first_app/
│ └── about.html # шаблон создадим ниже
├── views.py
├── urls.py
└── ...
Django ищет шаблоны в подпапке templates/ каждого зарегистрированного приложения. Вложенная папка first_app/ — это namespace, чтобы имена шаблонов не конфликтовали между приложениями.
Шаг 2: Убедитесь, что APP_DIRS включён в settings.py
# config/settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True, # должен быть True
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
Шаг 3: Создать шаблон about.html
<!-- first_app/templates/first_app/about.html -->
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>About</title>
</head>
<body>
<h1>About this project</h1>
<p>Author: {{ author }}</p>
<p><a href="/first/">Back to first view</a></p>
</body>
</html>
Шаг 4: Добавить about_view в views.py
# first_app/views.py
from django.http import HttpResponse
from django.shortcuts import render
def first_view(request):
return HttpResponse("<h1>Hello! It's my first view!</h1>")
def about_view(request):
context = {
'author': 'Django Developer',
}
return render(request, 'first_app/about.html', context)
Шаг 5: Добавить маршрут /about/ в urls.py
# first_app/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('first/', views.first_view, name='first_view'),
path('about/', views.about_view, name='about_view'), # добавить
]
Шаг 6: Проверка
python manage.py runserver
Откройте http://127.0.0.1:8000/about/ — должна появиться страница с заголовком «About this project» и именем автора.
Шаг 7: Коммит в git
git init # если ещё не инициализирован
echo ".env" >> .gitignore # защитить секреты
echo "db.sqlite3" >> .gitignore
git add .
git commit -m "feat: add about view with template"
Подготовка окружения
# Windows PowerShell
python -m venv venv
.\venv\Scripts\activate
pip install django django-environ
# Проверка установки
python -m django --version # должно вывести 5.x.x
Проверка в VS Code
- Откройте папку проекта в VS Code: File → Open Folder
- Откройте встроенный терминал: Ctrl+` (или Terminal → New Terminal)
- Активируйте виртуальное окружение:
.\venv\Scripts\activate - Запустите сервер:
python manage.py runserver - Откройте в браузере http://127.0.0.1:8000/about/
Точки останова (отладка)
Создайте файл .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver"],
"django": true
}
]
}
Нажмите F5 для запуска в режиме отладки. Установите точку останова в about_view кликом слева от номера строки.
Связь с разделами курса
- Теория — жизненный цикл HTTP-запроса в Django
- Примеры — полный рабочий пример проекта
- Решение задания 9 — первый view