Tutorial Basic Django REST Framework. oleh - tentangodoo.xyz

Halo sahabat selamat datang di website tentangodoo.xyz, pada kesempatan hari ini kita akan membahas seputar Tutorial Basic Django REST Framework. oleh - tentangodoo.xyz, kami sudah mempersiapkan artikel tersebut dengan informatif dan akurat, silahkan membaca

DRF Logo

REST is one of the methods we usually use in creating API’s. One of the advantages of REST in Django is that we can make it quickly and easily. So, we can deploy our Django apps as soon as possible.

There is a library for Django named “Django REST Framework (DRF)” that we can use for developing REST API.

DRF requires the following:

  • Python (3.5, 3.6, 3.7)
  • Django (1.11, 2.0, 2.1, 2.2)

DRF recommend and only officially support the latest patch release of each Python and Django series.

Now, we will create a simple application to implement REST in Django.

Initial Preparation.

  • Make sure virtualenv and pip has been configured well.
  • Install Django with pip: pip install Django.
  • Create a new project with django-admin startproject drf_project .. Note: drf_project is my project name. You can use another project name.

Install DRF.

  • We can install DRF with pip install djangorestframework.
  • Add rest_framework to INSTALLED_APPS in drf_project/settings.py file.
INSTALLED_APPS = (  	# Other apps  	'rest_framework',  )
  • We can use browsable API to our application. Modify the root urls.py as below.
from django.contrib import admin  from django.urls import path, include  from rest_framework import routers    router = routers.DefaultRouter()    urlpatterns = [      path('admin/', admin.site.urls),      path('api/', include(router.urls)),  ]

Run Our Project.

  • We need to migrate default migration to database with python manage.py migrate. Note: I use default sqlite3 as database. You can set custom database as you want.
  • Create a superuser with python manage.py createsuperuser. Then fill the credential as you want.
  • Run our django project with python manage.py runserver.
  • Open your browser then type localhost:8000/api/.

Default API root view

Create an Example Application.

We will create an application called books application. The books application have two models, Author and Book.

  • Create a new application with django-admin startapp books drf_project/books/. Note: I usually put the application inside of project folder.

Tree of project directory

  • Add drf_project.books to INSTALLED_APPS in drf_project/settings.py file.
INSTALLED_APPS = (  	# Other apps  	‘rest_framework’.  	‘drf_project.books’,  )
  • Modify drf_project/books/models.py as below.
from django.db import models      # Create your models here.  class Author(models.Model):      name = models.CharField(max_length=100, verbose_name="Name")        def __str__(self):          return self.name      class Book(models.Model):      title = models.CharField(max_length=100, verbose_name="Title")      description = models.TextField(verbose_name="Description")      author = models.ForeignKey(Author, related_name='books', on_delete=models.CASCADE, verbose_name="Author")        def __str__(self):          return self.title
  • Run makemigrations with python manage.py makemigrations books.
  • Run migrate with python manage.py migrate.
  • Create a serializer file named drf_project/books/serializers.py. Serializer used for representing data in JSON. Serializer usually uses based on a model but it also can use without a model. Check https://www.django-rest-framework.org/api-guide/serializers/ for another reference about serializer.
  • Modify drf_project/books/serializers.py as below.
from rest_framework import serializers    from .models import Author, Book      class AuthorSerializer(serializers.HyperlinkedModelSerializer):      class Meta:          model = Author          fields = ('name',)      class BookSerializer(serializers.HyperlinkedModelSerializer):      class Meta:          model = Book          fields = ('title', 'description', 'author')
from rest_framework import viewsets    from .models import Author, Book  from .serializers import AuthorSerializer, BookSerializer      # Create your views here.  class AuthorViewSet(viewsets.ModelViewSet):      queryset = Author.objects.all()      serializer_class = AuthorSerializer      class BookViewSet(viewsets.ModelViewSet):      queryset = Book.objects.all()      serializer_class = BookSerializer
  • Modify drf_project/urls.py as below.
from django.contrib import admin  from django.urls import path, include  from rest_framework import routers    from drf_project.books import views as books_views    router = routers.DefaultRouter()  router.register('authors', books_views.AuthorViewSet)  router.register('books', books_views.BookViewSet)    urlpatterns = [      path('admin/', admin.site.urls),      path('api/', include(router.urls)),  ]

Test Our API.

We need to test our API to ensure that API will work as expected. We can test our API with Django browsable API.

  • Run our django project with python manage.py runserver.
  • Open your browser then type localhost:8000/api/.

API root view

API author list

API book list

As you can see in the pictures above. You can browse API from browser and insert data via an available form. You can test API with other tools like Postman or via cURL.

  • Add pagination to control how many objects per page are returned. To enable, add the following lines to drf_project/settings.py file.
REST_FRAMEWORK = {      'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',      'PAGE_SIZE': 10  }

API author list with data

That’s it. If you have a question, please write in comments section. Thanks for reading. See you.

Reference: https://www.django-rest-framework.org/

Read: Install Odoo 12 and Wkhtmltopdf on Ubuntu 18.04 or Debian 9

Itulah tadi informasi dari daftar poker online mengenai Tutorial Basic Django REST Framework. oleh - tentangodoo.xyz dan sekianlah artikel dari kami tentangodoo.xyz, sampai jumpa di postingan berikutnya. selamat membaca.

Post a Comment

0 Comments