A viewset is a layer of abstraction over [[DRF Views]]. ViewSets bundle a set of standard operations (such as create, retrieve, update, delete) into a single class. They work with [[Django Models]] and [[DRF Serializers]] to provide the [[CRUD operations]] on [[Querysets]] out of the box for your application. Unlike standard [[DRF Views]] (`APIViews`), where handlers for [[HTTP Methods]] are defined by the developer within the view and then manually setup the individual URL patterns in `urls.py`, ViewSets do not provide any method handlers, but provide actions—such as `.list()`, `.retrieve(pk)`, `.create()`, `.update(pk)`, `partial_update(pk)`, and `.destroy(pk)`—and use routers to simplify the URL pattern creation process.