Django REST framework

Introduction

Django REST framework is a lightweight REST framework for Django, that aims to make it easy to build well-connected, self-describing RESTful Web APIs.

Browse example APIs created with Django REST framework: The Sandbox

Features:

Resources

Project hosting: GitHub.

Any and all questions, thoughts, bug reports and contributions are hugely appreciated.

Requirements

  • Python (2.5, 2.6, 2.7 supported)
  • Django (1.2, 1.3 supported)

Installation

You can install Django REST framework using pip or easy_install:

pip install djangorestframework

Or get the latest development version using mercurial or git:

hg clone https://bitbucket.org/tomchristie/django-rest-framework
git clone git@github.com:tomchristie/django-rest-framework.git

Or you can download the current release.

Setup

To add Django REST framework to a Django project:

  • Ensure that the djangorestframework directory is on your PYTHONPATH.
  • Add djangorestframework to your INSTALLED_APPS.

For more information on settings take a look at the Setup section.

Getting Started

Using Django REST framework can be as simple as adding a few lines to your urlconf.

urls.py:

from django.conf.urls.defaults import patterns, url
from djangorestframework.resources import ModelResource
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
from myapp.models import MyModel

class MyResource(ModelResource):
    model = MyModel

urlpatterns = patterns('',
    url(r'^$', ListOrCreateModelView.as_view(resource=MyResource)),
    url(r'^(?P<pk>[^/]+)/$', InstanceModelView.as_view(resource=MyResource)),
)

Django REST framework comes with two “getting started” examples.

  1. Getting Started - Views
  2. Getting Started - Model Views

Examples

There are a few real world web API examples included with Django REST framework.

  1. Object Store API - Using views.View classes for APIs that do not map to models.
  2. Code Highlighting API - Using views.View classes with forms for input validation.
  3. Blog Posts API - Using views.ModelView classes for APIs that map directly to models.

All the examples are freely available for testing in the sandbox:

(The Sandbox Root API resource is also documented.)

Indices and tables

Project Versions

Table Of Contents

Next topic

Setup

This Page