Поиск…


Simple barebones API для чтения

Предполагая, что у вас есть модель, которая выглядит следующим образом, мы получим работу с простым API - интерфейсом только для браузера, основанным на Django REST Framework («DRF»).

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 - интерфейс только для чтения , поэтому вместо использования более полного набора представлений или совокупности связанных общих представлений мы будем использовать один подкласс ListAPIView DRF.

Цель этого класса - связать данные с сериализатором и объединить все вместе для объекта ответа.

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()),
]


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow