Встречается на собеседованиях • сегодня

Что такое CBV в Django

CBV (Class-Based Views) — это представления на основе классов в Django, которые позволяют структурировать код более гибко и повторно использовать логику. В отличие от FBV (Function-Based Views), CBV предоставляют готовые шаблоны для распространённых задач (например, ListView, DetailView, CreateView), уменьшая количество boilerplate-кода.

Преимущества CBV:

  • Наследование и миксины для переиспользования кода.
  • Встроенные методы (get, post, dispatch) для обработки HTTP-запросов.
  • Чёткое разделение логики (например, get_context_data для передачи данных в шаблон).

Пример:

python
from django.views.generic import ListView
from .models import Post

class PostListView(ListView):
    model = Post
    template_name = 'blog/post_list.html'
    context_object_name = 'posts'

Недостатки:

  • Менее прозрачны, чем FBV, из-за скрытой логики родительских классов.
  • Требуют изучения иерархии классов (например, ViewTemplateViewListView).

Используйте CBV для стандартных операций (CRUD), а FBV — для сложной или нестандартной логики.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы