🏠 Домашнее задание

🎯 Самопроверка Django-блока К оглавлению урока

Это не LMS-задание. Урок 18 — итоговое повторение блока. Основная цель — проверить, насколько уверенно вы владеете темами уроков 13–17, прежде чем переходить к следующему блоку.

Задание: мини-проект «Библиотека»

Создайте Django-проект с нуля, реализующий простую систему управления книгами и авторами. Задание охватывает все темы блока: проект, приложение, модели, миграции, admin.

Подготовка окружения

1

Создание виртуального окружения

# PowerShell (Windows)
python -m venv venv
.\venv\Scripts\Activate.ps1

# Установка зависимостей
pip install django django-environ
pip freeze > requirements.txt
2

Создание проекта

django-admin startproject config .
python manage.py startapp library
3

Создание .env и .gitignore

# .env
SECRET_KEY=django-dev-secret-key-change-in-production
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# .gitignore
.env
*.pyc
__pycache__/
db.sqlite3
venv/
.venv/

Реализация

4

Настройка settings.py

Настройте config/settings.py: подключите django-environ, считайте SECRET_KEY из .env, добавьте 'library.apps.LibraryConfig' в INSTALLED_APPS, установите DEFAULT_AUTO_FIELD = BigAutoField.

5

Создание моделей

В файле library/models.py создайте три модели:

  • Author: name (CharField), bio (TextField, необязательное), birth_year (PositiveSmallIntegerField, необязательное)
  • Genre: name (CharField, unique=True)
  • Book: title (CharField), author (ForeignKey → Author, CASCADE), genres (ManyToManyField → Genre, blank=True), published_year (PositiveIntegerField, необязательное), description (TextField, необязательное), is_available (BooleanField, default=True)

Добавьте метод __str__ в каждую модель.

6

Создание и применение миграций

python manage.py makemigrations
python manage.py migrate
python manage.py showmigrations  # Проверка
7

Настройка Admin

В library/admin.py зарегистрируйте все три модели. Для BookAdmin настройте: list_display (title, author, is_available), search_fields (title, author__name), list_filter (is_available, genres).

8

Создание суперпользователя и проверка

python manage.py createsuperuser
python manage.py runserver

Откройте http://127.0.0.1:8000/admin/ и добавьте несколько авторов, жанров и книг через интерфейс.

Проверка в VS Code

9

Запуск через F5 (launch.json)

Создайте файл .vscode/launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Django",
            "type": "debugpy",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": ["runserver"],
            "django": true,
            "justMyCode": true
        }
    ]
}

Нажмите F5 — сервер запустится с поддержкой точек останова. Поставьте breakpoint в views.py на функцию hello_world и откройте URL — VS Code остановится на строке.

Критерии выполнения

Связь с разделами курса