Django: Getting Started Transcripts
Chapter: 3rd Party Libraries for Django
Lecture: Writing DRF code
Login or purchase this course to watch this video and the rest of the course contents.
0:00 The RFIs just an app. A fancy powerful app but an app nonetheless. And of course it needs to be registered. So I'll open settings.py.
0:24 Note that the name of the app is different than the name of the package
0:28 rest_framework is the name of the actual module because I want to use the browsing interface, I'm going to need to register the URLs
0:35 that are used for authentication. Let me open up alexandria URLs.py and this is the line that registers the packages off URLs
0:54 I'm going to demo the DRF by writing an API for our author data. I need two things for this.
1:00 Something that serialize is the author objects and a view for the API. I'll start by creating the serializer inside of catalog serializer.py
1:17 I need to import DRS serializer module along with the author object that I'm going to serialize
1:31 and then reminiscent of model forms, I create a serializer class based on the author model.
1:52 See what I mean? By being like model forms, you specify the model that this serializer is associated with along with the fields that
1:58 you want serialized and you're good to go. With the serializer in place, next up is a view for the API.
2:06 I'm going to put the view with the other views for catalog. Let me open up views.py, there are two imports that I need.
2:24 The API view decorator indicates that this is going to be an API view and the response object is the DRF
2:31 equivalent of an http response object that you would use in a view. And this is the serializer I just finished building, now to add the view.
2:47 Let me scroll down to the bottom here.
3:10 Structurally, this is similar to the views you've written before with just a few small differences.
3:15 First the decorator indicates that this is an API view and the get parameter says it's only going to support the http get method.
3:25 If you were going to do a full interface, there are class based views that take less code than writing this for each of the http methods.
3:33 But this is a quick way if all you're providing is a read only interface. On line 63, I query all the authors and then I create a serializer
3:43 object based on the one that I declared before it takes the query set result of
3:48 authors and an argument that indicates that there are multiple things being serialized here. I then get the output by using the serializer objects,
3:57 data attribute and wrap it in a context dictionary. All of this gets put inside a response object and the view is ready to go
4:04 The last thing to do is register this URL. Let me open up catalog URLs.py, if you're going to do a lot with the DRF
4:21 it has a full route management mechanism that helps you manage many different endpoints with very little code.
4:27 But for this quick demo, I'm just registering this view like any other. Let's go take a look at this in the browser.