Каково назначение view
Python
Senior
Без компании
Каково назначение view
Ответы
В Django `view` — это функция или класс, обрабатывающий HTTP-запрос и возвращающий HTTP-ответ. Основные задачи:
- **Логика обработки запроса** – извлечение данных из БД, валидация, бизнес-логика.
- **Формирование ответа** – возврат HTML (рендеринг шаблона), JSON (API), редирект и т.д.
Пример функции-представления:
```
from django.http import HttpResponse
from django.shortcuts import render
def hello(request):
return HttpResponse("Hello, World!")
def article_detail(request, article_id):
article = Article.objects.get(id=article_id)
return render(request, 'article.html', {'article': article})
```
Пример класса (CBV):
```
from django.views import View
class ArticleView(View):
def get(self, request, article_id):
article = Article.objects.get(id=article_id)
return render(request, 'article.html', {'article': article})
```
**Нюансы:**
- Для API часто используют `DRF` (Django REST Framework).
- `View` (класс) позволяет разделять логику по методам HTTP (`GET`, `POST` и т.д.).
- Декораторы (например, `@login_required`) добавляют дополнительную логику.