Django REST Framework: разница между представлениями и видами?

Может быть актуальным .

В чем разница между видами и видами ? А как насчет маршрутизатора и URL-адресов ?

One Solution collect form web for “Django REST Framework: разница между представлениями и видами?”

ViewSets и Routers – это простые инструменты для ускорения реализации вашего API, если вы нацелены на стандартное поведение и стандартные URL-адреса.

Используя ViewSet вам не нужно создавать отдельные представления для получения списка объектов и деталей одного объекта. ViewSet будет обрабатывать для вас согласованным образом как список, так и детали.

Использование Router будет подключать ваш ViewSet к «стандартизованному» (он не является стандартным каким-либо глобальным способом, а только некоторой структурой, которая была реализована разработчиками структуры Django REST) ​​для URL-адресов. Таким образом, вам не нужно создавать свои URL-адреса вручную, и вам гарантировано, что все ваши URL-адреса являются согласованными (по крайней мере, на уровне, за который отвечает Router ).

Это выглядит не так много, но при реализации огромного api, где у вас будет много и много URL-адресов и просмотров, использование ViewSets и Routers будет иметь большое значение.

Для лучшего объяснения: это код с использованием ViewSets и Routers:

views.py:

 from snippets.models import from rest_framework import viewsets from yourapp.serializers import ArticleSerializer class ArticleViewSet(viewsets.ModelViewSet): queryset = Article.objects.all() serializer_class = ArticleSerializer 

urls.py:

 from django.conf.urls import url, include from yourapp import views from rest_framework.routers import DefaultRouter router = DefaultRouter() router.register(r'articles', views.ArticleViewSet) urlpatterns = [ url(r'^', include(router.urls)), ] 

И эквивалентный результат с использованием обычных представлений и без маршрутизаторов:

views.py

 from snippets.models import Article from snippets.serializers import ArticleSerializer from rest_framework import generics class ArticleList(generics.ListCreateAPIView): queryset = Article.objects.all() serializer_class = ArticleSerializer class ArticleDetail(generics.RetrieveUpdateDestroyAPIView): queryset = Article.objects.all() serializer_class = ArticleSerializer 

urls.py

 from django.conf.urls import url, include from yourapp import views urlpatterns = [ url(r'articles/^', views.ArticleList.as_view(), name="article-list"), url(r'articles/(?P<pk>[0-9]+)/^', views.ArticleDetail.as_view(), name="article-detail"), ] 
  • Разбор ответов JSON
  • Отправить запрос на отправку в Scrapy
  • python flask отправляет данные через почту и URL-адрес
  • Ищете совет по защите частного REST API, написанного в python-колбе
  • В Python, как наиболее эффективно вырезать строку UTF-8 для доставки REST?
  • Уникальная проверка на вложенном сериализаторе в Django Rest Framework
  • Файл загрузки Django REST и недействительный адрес электронной почты
  • Получение запросов 401 в Twitter OAuth POST
  •  
    Interesting Posts for Van-Lav

    Итерация по нескольким столбцам в Pandas DF и динамическая резка

    Как управлять длиной результата string.format (bool_value) в Python?

    Передача выражения в качестве аргумента: ключевое слово не может быть выражением

    Как вы редактируете строку `__author__ = name` по умолчанию в PyCharm

    Невозможно установить python-модуль «pycrypto» на Debian lenny

    Странная повторяющаяся последовательность, напечатанная на консоли при установке пакетов через конду

    Веб-приложение запускается много раз – web.py

    Закрытие Python, ошибка локальной переменной области

    Сообщения IndexError с списками python и split

    python: существует ли синтаксический анализатор XML, реализованный в качестве генератора?

    сортировочный словарь python 3

    Как обмениваться переменными между скриптами в python?

    Почему я не могу повторить цикл «for» для csv.Reader? (Python)

    NumPy – В чем разница между буфером и строкой?

    python & pandas – вычисление числа строк на основе определенных значений в столбцах из DataFrame

    Python - лучший язык программирования в мире.