Rest API 使用

官网网站地址

$ pip install djangorestframework
$ pip install markdown       # Markdown support for the browsable API.
$ pip install django-filter  # Filtering support

或从 github 克隆项目

$ git clone https://github.com/encode/django-rest-framework

添加rest_framework到您的INSTALLED_APPS设置中。

INSTALLED_APPS = [
    ...
    'rest_framework',
]

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

urlpatterns = [
    ...
    path('api-auth/', include('rest_framework.urls'))
]

请注意,URL 路径可以是您想要的任何内容。

例子:

让我们看一下使用 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'
    ]
}

不要忘记确保您还添加rest_framework到您的INSTALLED_APPS.

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

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

# 序列化器定义API表示
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ['url', 'username', 'email', 'is_staff']

# 视图集定义了视图行为
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    
class JobSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Job
        fields = '__all__'
        
class JobViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows groups to be viewed or edited.
    """
    queryset = Job.objects.all()
    serializer_class = JobSerializer
    

# 路由器提供了一种自动确定URL配置文件的简单方法
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'jobs', JobViewSet)

# 使用自动URL路由连接我们的API
# 此外,我们还包含了可浏览API的登录url
urlpatterns = [
    path('api/', include(router.urls)),
    path('api-auth/', include('rest_framework.urls')),
]

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