django-rest-frameworkdjango-rest-framework入门


备注

Django REST Framework是用于构建Web应用程序的工具包。它可以帮助程序员执行REST API ,但它可以处理不太成熟的API级别。有关API成熟度级别的更多信息,请搜索Richardson的成熟度模型。

特别是,Django REST Framework并不支持任何特定的超媒体级布局,如果他们想要追求HATEOAS API实现,那么由程序员(或其他项目,如srf-hal-json )来决定框架之外的意见。因此,可以在Django REST Framework中实现HATEOAS API,但是没有现成的实用程序。

版本

发布日期
3.5.3 2016年11月7日

让我们看一个使用REST框架构建一个简单的模型支持的API的快速示例。

我们将创建一个读写API,用于访问有关项目用户的信息。

REST框架API的任何全局设置都保存在名为REST_FRAMEWORK 的单个配置字典中。首先将以下内容添加到settings.py 模块:

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}
 

我们现在准备创建我们的API了。这是我们项目的根urls.py 模块:

from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets

# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff')

# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
 

您现在可以在浏览器中打开API, http://127.0.0.1:8000/http://127.0.0.1:8000/ ,并查看新的“用户”API。如果您使用右上角的登录控件,您还可以从系统添加,创建和删除用户。

安装或设置

要求

  • Python(2.7,3.2,3.3,3.4,3.5,3.6)
  • Django(1.7 +,1.8,1.9,1.10,1.11)

安装

您可以使用pip 从github安装或克隆项目。

  • 使用pip

    pip install djangorestframework
     
  • 使用git clone

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

安装后,您需要rest_framework 添加到INSTALLED_APPS 设置中。

INSTALLED_APPS = (
    ...
    'rest_framework',
)
 

如果您打算使用可浏览的API,您可能还需要添加REST框架的登录和注销视图。将以下内容添加到根urls.py文件中。

urlpatterns = [
    ...
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]