django-rest-frameworkIniziare con il framework django-rest


Osservazioni

Django REST Framework è un toolkit per la creazione di app Web. Aiuta il programmatore a fare API REST , ma può gestire livelli API meno maturi. Per ulteriori informazioni sui livelli di maturità API, cercare il modello di maturità di Richardson.

In particolare, Django REST Framework non supporta alcun particolare layout a livello di Hypermedia, e spetta al programmatore (o ad altri progetti, come srf-hal-json ) se vogliono perseguire un'implementazione dell'API HATEOAS, opinioni al di fuori del quadro. Pertanto, è possibile implementare un'API HATEOAS in Django REST Framework, ma non ci sono programmi di utilità prontamente disponibili già disponibili.

Versioni

Versione Data di rilascio
3.5.3 2016/11/07

Esempio

Diamo un'occhiata ad un rapido esempio di utilizzo del framework REST per costruire una semplice API basata sul modello.

Creeremo un'API read-write per accedere alle informazioni sugli utenti del nostro progetto.

Qualsiasi impostazione globale per un'API framework REST viene mantenuta in un singolo dizionario di configurazione denominato REST_FRAMEWORK . Inizia aggiungendo quanto segue al tuo modulo 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'
    ]
}
 

Siamo pronti a creare la nostra API ora. Ecco il modulo root di urls.py del nostro progetto:

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'))
]
 

Ora puoi aprire l'API nel browser all'indirizzo http://127.0.0.1:8000/ e visualizzare la tua nuova API "utenti". Se usi il controllo di login nell'angolo in alto a destra potrai anche aggiungere, creare e cancellare utenti dal sistema.

Installa o configura

Requisiti

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

Installare

Puoi utilizzare pip per installare o clonare il progetto da github.

  • Utilizzando pip :

    pip install djangorestframework
     
  • Utilizzando git clone :

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

Dopo l'installazione, è necessario aggiungere rest_framework ai tuoi INSTALLED_APPS impostazioni.

INSTALLED_APPS = (
    ...
    'rest_framework',
)
 

Se intendi utilizzare l'API navigabile, probabilmente vorrai anche aggiungere le viste di login e logout del framework REST. Aggiungi quanto segue al tuo file urls.py di root.

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