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 из Post в приложении сервера web.py?
  • Каков наилучший способ запуска REST API-версий с Python Flask
  • API RESTful для проектов / приложений Django
  • ImportError: нет модуля с именем flask.ext.httpauth
  • Django REST Framework: не удалось разрешить URL для гиперссылок с использованием имени представления
  • Добавление поведения REST в класс с флягой, для чертежей?
  • Ошибка аутентификации Django + Auth0 JWT
  • Рамки для реализации веб-службы REST в Django
  • Django REST Framework, pre_save () и serializer.is_valid (), как они работают?
  • Как сделать некоторые фильтры обязательными в tastypie?
  • Испытательная среда с помощью API REST API
  • Python - лучший язык программирования в мире.