Slide 1

Slide 1 text

Simple REST with Django Senko Rašić, Dobar Kod

Slide 2

Slide 2 text

Previously in Django… Django Piston ! TastyPie ! roll your own

Slide 3

Slide 3 text

Do you have a minute? ! I’d like to talk to you about our Lord and Saviour

Slide 4

Slide 4 text

Django REST Framework Browsable API ! Authentication ! Serialization ! Docs & community

Slide 5

Slide 5 text

..meanwhile in Django.. from django.http import JSONResponse from django.core import serializers ! ! def books_list(request): qs = Book.objects.all() return JSONResponse(qs.values()) ! ! def book_detail(request, book_id): book = get_object_or_404(Book, id=book_id) dct = serializers.serialize(‘python’, [book]) return JSONResponse(dct)

Slide 6

Slide 6 text

DjangoRestless from restless.views import Endpoint from restless.models import serialize ! class BookList(Endpoint): def get(self, request): return serialize(Book.objects.all()) ! class BookDetail(Endpoint): def get(self, request, book_id): book = get_object_or_404(Book, id=book_id) return serialize(book)

Slide 7

Slide 7 text

model views from restless.modelviews import * ! ! class BookList(ListEndpoint): model = Book ! class BookDetail(DetailEndpoint): model = Book

Slide 8

Slide 8 text

custom serialization from restless.models import serialize ! ! def my_ordinary_view(request): book = Book.objects.all() return serialize(book, fields=[ ‘title’, (‘author’, { fields=[‘name’, ‘address’]}), (‘publisher’, { fields=[‘name’, ‘address’]}), ‘summary’, (’n_comments’, lambda x: x.comments.Count())])

Slide 9

Slide 9 text

..and now for the conclusion DRF is awesome ! but ! Use the right tool for the job