Django是Python中的Web开发框架,而Django Rest Framework是用于构建Rest API的Django库。Django Rest Framework特别设计用于使CRUD操作在Django中更易于设计。
Django Rest Framework使得将您的Django服务器用作REST API变得容易。
REST代表“表现层状态转移”,API代表应用程序编程接口。
您可以使用常规的Django构建restful api,但这将非常繁琐。DRF使一切变得简单。为了比较,这里有一个仅使用普通Django的简单GET-view和一个使用Django Rest Framework的简单GET-view:
普通的:
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
回答你的问题,让我们逐个来看:
"Django框架是创建Web应用程序所需的全部还是需要添加到其他框架中?"
Django框架足够了,在Web应用程序的上下文中,它是创建一个Web应用程序所需的全部。Rest框架,例如Django Rest Framework,是一个库,可以在构建REST API时简化操作。
"Web应用程序和API之间有什么联系?"
要回答这个问题,最好先了解一下API是什么。简单来说,将API视为定义其他应用程序如何使用你的应用程序的一组规则的接口。这些规则以端点(URI)的形式呈现,可以向其发送请求以获取某些数据。你可以在这里找到有用的资源 link。 Web应用程序可以以REST API的形式呈现,以提供特定的数据(位置数据、支付处理等),这些数据可以被其他应用程序消费。例如,PayPal的API可以集成到应用程序中进行支付处理。
前端框架可以用于向API端点发出请求,以呈现所请求数据的前端界面。这利用了关注点分离原则(前端和后端)。Web应用程序需要API才能正常运行吗?
我能给出的最好答案是:这取决于情况。 考虑以下场景: 假设您正在构建一个处理物流和交付的应用程序,您会为您的物流应用程序重新构建“地图”功能,还是您会使用Google Maps API来处理您应用程序中的地图功能。
简而言之,应用程序可能需要或不需要API才能正常运行,这取决于架构。
Django创建包含网页的网站,而Django REST框架用于构建Web API,允许在全球范围内传输数据。
API
可以理解为规范,允许用户轻松地从您的django
应用程序中创建、读取、更新、删除数据。Django本身提供了一个框架,您可以在其中构建模型业务逻辑-用户管理等。Django rest framework是django的插件,用于正确管理这些模型数据(CRUD),并为客户端打开网关以通过使用端点来操作它,例如/users/<username>
可以是您可以发送put
请求以更新特定用户数据的URL。客户端基本上是Web浏览器客户端和Android / iOS应用程序客户端。 - mon io