Перейти до змісту

Glossary

Терміни курсу Django і Notes Chat App. Відсортовано за абеткою (англійська літера).


A

Термін Пояснення
annotate ORM метод, що додає обчислене поле до кожного об'єкту QuerySet (наприклад, Count, Sum) без N+1 запитів
ASGI Async Server Gateway Interface — async-capable Python web interface, потрібний для WebSocket і async runtime. Замінює WSGI для real-time застосунків
AsyncWebsocketConsumer Базовий клас Django Channels для async WebSocket consumer (аналог View для HTTP)
Authentication Перевірка, хто є користувач (login / session)
AuthMiddlewareStack Django Channels middleware, що читає session cookie з WS handshake і наповнює scope["user"]
Authorization Перевірка, що користувачу дозволено робити (object-level permission)
auto_now_add Параметр DateTimeField: записує поточний час лише при створенні об'єкту

C

Термін Пояснення
CASCADE on_delete поведінка: при видаленні батьківського об'єкту видаляються всі пов'язані дочірні об'єкти
channel group Логічна група Channels-каналів; group_send надсилає подію всім учасникам групи
channel layer Pub/sub шар Django Channels — передає повідомлення між Consumer instances (InMemory або Redis)
CheckConstraint Обмеження на рівні БД: перевіряє Q-вираз при INSERT/UPDATE. Наприклад, Q(priority__gte=1)
Consumer Channels-клас, що обробляє WebSocket lifecycle (connect / receive / disconnect)
CSRF Cross-Site Request Forgery — атака, де чужий сайт змушує браузер надіслати небажаний POST від імені залогіненого user
Crispy Forms Django-пакет для Bootstrap-стилізованого рендерингу форм через CrispyFormHelper

D

Термін Пояснення
database_sync_to_async Channels decorator/wrapper: запускає синхронну ORM-функцію у Django thread pool з async context
DEBUG Django setting: True — детальні error pages; False — 500 без traceback. Ніколи True у production
Deployment Запуск застосунку на сервері для реальних користувачів
Django app Модуль Django з models, views, forms, templates; реєструється в INSTALLED_APPS
Django project Package з settings.py, root urls, wsgi.py/asgi.py; оточує один або декілька apps
docker compose Інструмент для оркестрації кількох Docker-контейнерів через docker-compose.yml

E

Термін Пояснення
entrypoint.sh Shell-скрипт, що виконується при старті Docker контейнера: migrate → collectstatic → seed → exec server
event loop Asyncio механізм для виконання coroutines; один на процес; не можна блокувати синхронними викликами

F

Термін Пояснення
ForeignKey Поле моделі: зовнішній ключ до іншої таблиці. Параметр on_delete визначає поведінку при видаленні батьківського запису
Form Django клас для validation і rendering input fields. ModelForm — форма на основі моделі

G

Термін Пояснення
Group Django built-in: django.contrib.auth.models.Group; використовується для групового ділення нотаток і чату

H

Термін Пояснення
health check Docker: умова готовності контейнера (наприклад, pg_isready для PostgreSQL); інші сервіси чекають на неї перед стартом

I

Термін Пояснення
IDOR Insecure Direct Object Reference — доступ до чужого об'єкту через зміну pk у URL без перевірки ownership
InMemoryChannelLayer Channel layer без Redis; підходить для розробки з одним процесом; не передає повідомлення між різними Uvicorn workers
index (DB) Структура даних у БД для прискорення SELECT по певних полях. У Django — models.Index в Meta.indexes

L

Термін Пояснення
lazy evaluation QuerySet не виконує SQL до моменту ітерації або явного перетворення (list(), bool(), len())
login_required Django decorator: перенаправляє анонімного user на /accounts/login/

M

Термін Пояснення
ManyToManyField Поле моделі: many-to-many відношення через проміжну junction таблицю
Middleware Проміжний шар між request і view (або view і response): обробляє кожен запит/відповідь
Migration Версійний опис зміни database schema; генерується makemigrations, застосовується migrate
Model Python-клас, що описує таблицю БД і доменну сутність

N

Термін Пояснення
N+1 problem Антипатерн: 1 запит на список + N запитів для кожного елементу. Вирішується select_related або prefetch_related
Nginx Reverse proxy і web server: приймає HTTP/WebSocket запити і проксіює до ASGI server

O

Термін Пояснення
on_delete Параметр FK: поведінка при видаленні батьківського запису. CASCADE — видалити дочірні; SET_NULL — встановити null
ORM Object Relational Mapper: шар роботи з БД через Python об'єкти без SQL

P

Термін Пояснення
prefetch_related ORM оптимізація: виконує окремий SELECT для пов'язаних об'єктів (M2M або зворотній FK) і кешує результат
primary key (pk) Унікальний ідентифікатор запису в таблиці. У Django — автоматичне id = AutoField якщо не вказано інше
ProtocolTypeRouter ASGI router: розподіляє трафік за типом протоколу (http → Django, websocket → Channels)

Q

Термін Пояснення
Q object Django ORM об'єкт для складних WHERE умов з операторами | (OR), & (AND), ~ (NOT)
QuerySet Лінивий об'єкт, що описує database query; матеріалізується при ітерації або list()

R

Термін Пояснення
Redis In-memory key-value store: використовується як channel layer для передачі WS повідомлень між consumer instances
related_name Параметр FK/M2M: ім'я зворотнього зв'язку. related_name='notes' → notebook.notes.all()
reverse proxy Сервер (Nginx), що приймає зовнішні запити і передає їх внутрішньому ASGI серверу

S

Термін Пояснення
scope Channels: dict з метаданими з'єднання (аналог request у HTTP). Містить user, url_route, headers
select_related ORM оптимізація: виконує SQL JOIN для FK і OneToOne полів; завантажує пов'язані об'єкти одним запитом
Selector Функція у selectors.py, відповідальна лише за SELECT/read queries з правилами доступу
Service Функція у services.py, відповідальна за business операцію і мутацію даних
Session Server-side стан, пов'язаний з браузером через cookie sessionid; зберігає автентифікованого user
SET_NULL on_delete поведінка: FK поле встановлюється в NULL замість CASCADE при видаленні батьківського запису
socket_timeout Параметр RedisChannelLayer CONFIG: None = без таймауту. Без нього Redis закриє idle з'єднання → TimeoutError
StaticLiveServerTestCase Django клас для Selenium тестів: запускає реальний сервер і роздає статичні файли

T

Термін Пояснення
Template HTML-файл з Django template language {{ }} і {% %} тегами
TestCase Django клас для тестів: загортає кожен тест у транзакцію (rollback після кожного тесту)
Transaction Група DB operations, яка або виконується повністю, або відкочується; гарантує цілісність
TransactionTestCase Django клас: не загортає в транзакцію → дані видимі з усіх потоків. Обов'язковий для async consumer тестів

U

Термін Пояснення
unique_together Meta.unique_together або UniqueConstraint: комбінація полів унікальна в межах таблиці
URLRouter Channels: маршрутизує WebSocket з'єднання до Consumer за URL патерном
Uvicorn ASGI server на Python: запускає Django ASGI application. В docker stack: uvicorn notes_project.asgi:application

V

Термін Пояснення
View Обробник HTTP request/response. FBV (функція) або CBV (клас). У Notes Chat App — переважно FBV

W

Термін Пояснення
WebsocketCommunicator channels.testing клас для юніт-тестування WebSocket consumer без реального браузера і сервера
WebSocket Протокол: довге двостороннє з'єднання між браузером і сервером (на відміну від HTTP request/response)
worker thread Окремий потік у Django thread pool, де database_sync_to_async виконує синхронний ORM код
WSGI Web Server Gateway Interface: класичний sync Python web interface. Не підтримує WebSocket