Looking for django Keywords? Try Ask4Keywords

Django Barebones simples API de solo lectura


Ejemplo

Suponiendo que tenga un modelo que se parece al siguiente, iniciaremos una ejecución con una simple API de solo lectura basada en barebones basada en Django REST Framework ("DRF").

modelos.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)

El serializador es el componente que tomará toda la información del modelo de Django (en este caso, el artículo de FeedItem ) y lo convertirá en JSON. Es muy similar a crear clases de formulario en Django. Si tiene alguna experiencia en eso, esto será muy cómodo para usted.

serializers.py

from rest_framework import serializers
from . import models

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

vistas.py

DRF ofrece muchas clases de vistas para manejar una variedad de casos de uso. En este ejemplo, sólo vamos a tener una API de solo lectura, por lo que, en lugar de utilizar un enfoque más integral viewset , o un montón de puntos de vista genéricos relacionados, vamos a utilizar una sola subclase de DRF de ListAPIView .

El propósito de esta clase es vincular los datos con el serializador y envolverlos todos juntos para un objeto de respuesta.

from rest_framework import generics
from . import serializers, models

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

urls.py

Asegúrese de apuntar su ruta a su vista DRF.

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

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