简单的准系统只读 API

假设你有一个如下所示的模型,我们将使用由 Django REST Framework(DRF)驱动的简单准系统只读 API 运行。

models.py

class FeedItem(models.Model):
    title = models.CharField(max_length=100, blank=True)
    url = models.URLField(blank=True)
    style = models.CharField(max_length=100, blank=True)
    description = models.TextField(blank=True)

序列化程序是将从 Django 模型(在本例中为 FeedItem)获取所有信息并将其转换为 JSON 的组件。它与在 Django 中创建表单类非常相似。如果你有任何经验,这将是非常舒适的。

serializers.py

from rest_framework import serializers
from . import models

class FeedItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.FeedItem
        fields = ('title', 'url', 'description', 'style')

views.py

DRF 提供了许多视图类来处理各种用例。在这个例子中,我们只会有一个只读 API,因此,我们将使用 DRF 的 ListAPIView 的单个子类,而不是使用更全面的视图集或一堆相关的通用视图。

此类的目的是将数据与序列化程序链接,并将它们全部包装在一起以形成响应对象。

from rest_framework import generics
from . import serializers, models

class FeedItemList(generics.ListAPIView):
    serializer_class = serializers.FeedItemSerializer
    queryset = models.FeedItem.objects.all()

urls.py

确保将路线指向 DRF 视图。

from django.conf.urls import url
from . import views

urlpatterns = [
    ...
    url(r'path/to/api', views.FeedItemList.as_view()),
]