Django или Django Rest Framework

Я сделал определенное приложение в django, и я знаю, что django rest framework используется для API. Но когда я начал читать о структуре django rest на своем веб-сайте. Каждый и все в Руководстве API (например, запрос, ответ, мнения и т.д.),.talks об этом превосходит django (запрос, ответ, мнения и т.д.)

Дело в том, что я не понимаю, заменит ли этот API мои существующие модели django, представления и т.д. Или как я могу использовать их по-другому в моем существующем коде django

Я хорошо знаком с django, но не могу понять, что именно за рамки django rest даже после того, как потратили на это некоторое время. (Я знаю, что он используется для API), также мне действительно нужно API. Мое приложение может отправлять данные на сервер без API, поэтому в каком случае мне нужен API

Ответ 1

Django Rest Framework упрощает использование вашего Django Server в качестве REST API.

REST означает "повторно презентационный с татэ~d т ransfer" и API, обозначает РИМЕНЕНИЕ р rogramming я nterface.

Вы можете построить успокоительный api, используя обычный Django, но он будет очень скрупулезным. DRF делает все легко. Для сравнения здесь просто GET-view, используя только обычный Django, и один с помощью Django Rest Framework:

Regular:

from django.core.serializers import serialize
from django.http import HttpResponse


class SerializedListView(View):
    def get(self, request, *args, **kwargs):
        qs = MyObj.objects.all()
        json_data = serialize("json", qs, fields=('my_field', 'my_other_field'))
        return HttpResponse(json_data, content_type='application/json')

И с DRF это становится:

from rest_framework import generics


class MyObjListCreateAPIView(generics.ListCreateAPIView):
    permission_classes = [permissions.IsAuthenticatedOrReadOnly]
    serializer_class = MyObjSerializer

Обратите внимание, что с помощью DRF вы легко имеете список и создаете представления, а также аутентификацию.

Ответ 2

Независимо от того, нужен ли вам api, зависит от того, что вы хотите сделать. Например, если вы хотите получить доступ ко всем в своих моделях Django с мобильного устройства и веб-приложением, вы хотели бы использовать DRF.

Зачем? Рассмотрим случай, когда вы разрабатываете приложение iOS, в которое могут войти пользователи, и вы хотите использовать Django в качестве своего внутреннего сервера. Если вы также хотите иметь веб-сайт, который они могут использовать для изменения информации о своих профилях приложения (скажем, обновить свой адрес электронной почты или загрузить изображение), вам понадобится способ поделиться информацией в ваших моделях Django как с веб-сайтом, так и с веб-сайтом устройство iOS. Как это может быть сделано? Предоставляя пользователю возможность создавать/читать/обновлять/удалять данные, просто сообщая ему URL-адрес. Теперь, если вы хотите получить доступ к информации из модели, вы можете сделать это с нескольких устройств, поскольку любое устройство может посетить URL-адрес.

Однако, если вы просто создаете простую веб-страницу/веб-страницу и сохраняете ее в одном месте, вы можете просто использовать прямой Django.

Замечание: это довольно популярное мнение о том, что вы должны как можно больше отделить свой интерфейс от своего бэкэнд. В этом случае, если вы хотите использовать некоторые интерфейсные разработки, такие как React, Angular или Vue, он будет запутан, пытаясь включить все эти ресурсы в страницы шаблонов Django, даже если вам требуется простое веб-приложение/веб-страница. В этом случае вы должны использовать DRF для настройки вашего бэкэнд и просто использовать URL-адреса из интерфейса с помощью инструмента, такого как axios. В этом случае ваш интерфейс, скорее всего, будет размещен на чем-то вроде Node.

Опять же, то, что вы решите использовать на самом деле, зависит только от того, что вы хотите от своего приложения/сайта и насколько вам комфортно с каждым инструментом.