Django REST Framework es un contenedor sobre Django Framework predeterminado, básicamente utilizado para crear API de varios tipos. Hay tres etapas antes de crear una API a través del marco REST, convertir los datos de un modelo a formato JSON/XML (serialización), representar estos datos en la vista, crear una URL para mapear al conjunto de vistas.
Este artículo gira en torno a cómo crear una API básica utilizando Django REST Framework. Se supone que está familiarizado con los conceptos básicos de Django: tutorial de Django . Además, instalación de Django REST Framework . Suponiendo que haya creado un proyecto llamado geeksforgeeks con Django, iniciemos Django REST Framework.
Pasos
Agregue rest_framework a INSTALLED_APPS
Para inicializar REST Framework en su proyecto, vaya a settings.py y en INSTALLED_APPS agregue ‘rest_framework’ en la parte inferior.
Python3
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', ]
Crear una aplicación y un modelo
Ahora, creemos una aplicación usando el comando,
python manage.py startapp apis
Ya se habría registrado una carpeta con el nombre apis. agreguemos esta aplicación a INSTALLED_APPS y urls.py también.
En, configuración.py,
Python3
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'apis', ]
Ahora, agregue apis urls en urls.py. En geeksforgeeks.urls.py ,
Python3
from django.contrib import admin # include necessary libraries from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), # add apis urls path('', include("apis.urls")) ]
Crear un modelo
Para demostrar, crear y usar una API, creemos un modelo llamado «GeeksModel». En apis/models.py
Python3
from django.db import models class GeeksModel(models.Model): title = models.CharField(max_length = 200) description = models.TextField() def __str__(self): return self.title
ahora que nuestra aplicación está lista, vamos a serializar los datos y crear vistas a partir de ellos.
Publicación por entregas
Los serializadores permiten convertir datos complejos, como conjuntos de consultas e instancias de modelos, en tipos de datos nativos de Python que luego se pueden representar fácilmente en JSON, XML u otros tipos de contenido. Los serializadores también brindan deserialización, lo que permite que los datos analizados se vuelvan a convertir en tipos complejos, después de validar primero los datos entrantes. Empecemos a crear un serializador, en el archivo apis/serializers.py,
Python3
# import serializer from rest_framework from rest_framework import serializers # import model from models.py from .models import GeeksModel # Create a model serializer class GeeksSerializer(serializers.HyperlinkedModelSerializer): # specify model and fields class Meta: model = GeeksModel fields = ('title', 'description')
Creación de un conjunto de vistas
Para procesar datos en la interfaz y manejar las requests del usuario, necesitamos crear una vista. En Django REST Framework, los llamamos conjuntos de vistas, así que vamos a crear una vista en apis/views.py,
Python3
# import viewsets from rest_framework import viewsets # import local data from .serializers import GeeksSerializer from .models import GeeksModel # create a viewset class GeeksViewSet(viewsets.ModelViewSet): # define queryset queryset = GeeksModel.objects.all() # specify serializer to be used serializer_class = GeeksSerializer
Definir URL de API
Especifique la ruta URL de las API a las que se accederá, en apis/urls.py,
Python3
# basic URL Configurations from django.urls import include, path # import routers from rest_framework import routers # import everything from views from .views import * # define the router router = routers.DefaultRouter() # define the router path and viewset to be used router.register(r'geeks', GeeksViewSet) # specify URL Path for rest_framework urlpatterns = [ path('', include(router.urls)), path('api-auth/', include('rest_framework.urls')) ]
Después de que todo esté listo con éxito, ejecutemos algunos comandos para activar el servidor.
Ejecute el servidor y verifique la API
Ejecute los siguientes comandos para crear la base de datos y ejecutar el servidor,
python manage.py makemigrations python manage.py migrate python manage.py runserver
Ahora visite http://127.0.0.1:8000/geeks/ ,
Para comprobar el código del proyecto, haga clic aquí
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA