Join us and get access to hundreds of tutorials and a community of expert Pythonistas.

Unlock This Lesson

This lesson is for members only. Join us and get access to hundreds of tutorials and a community of expert Pythonistas.

Unlock This Lesson

Hint: You can adjust the default video playback speed in your account settings.
Hint: You can set the default subtitles language in your account settings.
Sorry! Looks like there’s an issue with video playback 🙁 This might be due to a temporary outage or because of a configuration issue with your browser. Please see our video player troubleshooting guide to resolve the issue.

Building With Django REST Framework (Summary)

Give Feedback

The Django REST Framework is a powerful set of tools giving you the ability to create REST interfaces on top of the Django web framework with a minimum of additional code. Now you know how to list, create, change, and delete data on your server over HTTP using

In this course you learned about:

  • The REST protocol
  • DRF Serializers and how to use them with Django objects
  • Using Django views and DRF ViewSet classes to create REST end-points
  • Multiple flavors of renderers and how to control their output
  • Specifying permissions and limiting who can see what data in your REST API

Here are additional resources about Django, REST, and DRF:


Sample Code (.zip)

40.6 KB


Course Slides (.pdf)

827.0 KB

00:00 In the previous lesson, I showed you a sample single-page application. In this final lesson, I’ll summarize what you’ve learned. REST is a loosely-defined protocol that allows you to list, create, update, patch, and delete data on your server.

00:16 It uses existing HTTP methods and URLs to perform the actions. The Django REST Framework, or DRF, works in conjunction with Django to perform REST activities on top of Django model objects and views.

00:32 Inside DRF, the serializers are responsible for turning your data into payloads and taking payloads and turning them into your data. The ModelSerializer maps Django ORM objects.

00:47 This means it takes very little code to convert something you’ve already got into a payload. Objects with relationships on the server side can be serialized together and nested into parent objects.

01:01 Although the most common use of serialization is to serialize Django ORM objects, DRF serializers are able to serialize generic Python classes. You can pretty much serialize or deserialize almost anything that you want.

01:17 You implement a REST endpoint with a view on the Django side. The DRF provides decorators to wrap your views and REST Response objects that know how to work with the serializers. In addition to the views, the DRF provides a series of classes called ViewSets.

01:34 These classes group together multiple HTTP methods or REST actions and manage them together. This is particularly useful when you’re serializing a Django ORM object.

01:45 You can create a ViewSet that has all of the REST action points for that ORM object in just a few lines of code. You can create a DRF Router object to register one or more ViewSets, and it will automatically map that ViewSet to the necessary URL patterns. You can manage who sees what data and what they’re allowed to do with it by specifying permissions and querysets associated with a ViewSet.

02:12 You can also add custom actions to a ViewSet in order to augment the base REST calls.

02:19 The DRF Response object takes information out of the serializer and turns it into a payload. It does this through a renderer. DRF supports several different ways of rendering your data. By default, it gives both a JSON and a web-based interface for your payloads.

02:39 You can also control which renderer’s being used and how things are rendered through changing settings or decorators of your views.

02:49 For further reading and minutia on the DRF, go to the Django REST Framework website. The website also maintains a huge list of third-party packages that may already implement that corner case that you’ve been worried about.

03:03 Take a look at this URL for more information.

03:07 I hope this course has been valuable to you. Thanks for your attention.

Become a Member to join the conversation.