Building With Django REST Framework (Summary)
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 DRFViewSet
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:
- Representational state transfer, Wikipedia
- Django REST framework
- Django User Management
- Django REST framework: API-Guide: Fields
- Django REST framework: Third Party Packages
Congratulations, you made it to the end of the course! What’s your #1 takeaway or favorite thing you learned? How are you going to put your newfound skills to use? Leave a comment in the discussion section and let us know.
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.
Christopher Trudeau RP Team on Nov. 4, 2021
Hi @allapopovarus,
Bootstrap modals is a third-party library. You will find it (and a couple of things) specified in the “requirements.txt” file, you’ll need to use pip to install them. If you’re curious about the code, you can see it here:
github.com/cltrudeau/django-bstrap-modals
The intent on the SPA stuff was to give a flavor of what you could do, it is always a challenge to jump the gap that in this case includes other languages and libraries.
Feel free to post questions here if you need help with something and I’ll do my best to answer them.
jwil on Nov. 16, 2024
Well done course. It takes a little while for it to sink in that the DRF can do a LOT of work for you. I think that’s what makes the SPA part a little overwhelming. DRF is still shiny and new, and now here’s a lot of other new toys. I will definitely be revisiting. Thanks again.
Christopher Trudeau RP Team on Nov. 17, 2024
Hi jwil,
Glad you enjoyed it. My preference these days is to use Django Ninja instead, but the DRF, like Django itself is the workhorse that has been around for a long time and does the job just fine.
Become a Member to join the conversation.
allapopovarus on Nov. 3, 2021
Here is a huge gap in intermediate and advanced levels. There is no bsmodals in static folder in sample code…