Class-based generic views (ListView, DetailView, CreateView, UpdateView, DeleteView) encapsulate the common display and editing cases. You configure them through attributes (model, template_name) or by overriding methods such as get_queryset. They reduce boilerplate compared with function-based views.
Example
class PostList(ListView):
model = Post
paginate_by = 10