发布时间:2022-08-09 文章分类:编程知识 投稿人:李佳 字号: 默认 | | 超大 打印

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:¶

  • Automatically provides an awesome Django admin style browse-able self-documenting API.
  • Clean, simple, views for Resources, using Django’s new class based views.
  • Support for ModelResources with out-of-the-box default implementations and input validation.
  • Pluggable parsers, renderers, authentication and permissions - Easy to customise.
  • Content type negotiation using HTTP Accept headers.
  • Optional support for forms as input validation.
  • Modular architecture - MixIn classes can be used without requiring the Resource or ModelResource classes.

Resources¶

Project hosting: GitHub.

  • The djangorestframework package is available on PyPI.
  • We have an active discussion group.
  • Bug reports are handled on the issue tracker.
  • There is a Jenkins CI server which tracks test status and coverage reporting. (Thanks Marko!)

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, 1.4 supported)
  • django.contrib.staticfiles (or django-staticfiles for Django 1.2)
  • URLObject >= 2.0.0
  • Markdown >= 2.1.0 (Optional)
  • PyYAML >= 3.10 (Optional)

Installation¶

You can install Django REST framework using pip or easy_install:

pip install djangorestframework

Or get the latest development version using git:

git clone git@github.com:tomchristie/django-rest-framework.git

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.

The following example exposes your MyModel model through an api. It will provide two views:

  • A view which lists your model instances and simultaniously allows creation of instances
    from that view.
  • Another view which lets you view, update or delete your model instances individually.

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'^
  • A view which lists your model instances and simultaniously allows creation of instances
    from that view.
  • Another view which lets you view, update or delete your model instances individually.