首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >django和django rest框架的区别

django和django rest框架的区别
EN

Stack Overflow用户
提问于 2021-06-23 01:17:16
回答 4查看 844关注 0票数 0

好吧,我刚刚完成了一门关于Django教程的YouTube课程,我对Django有一定程度的了解。现在的问题是Django rest框架。谷歌说它是用来创建API的,但我就是不明白。如果Django框架可以用来创建web应用程序,那么Django rest框架在web应用程序开发方面可以用来做什么。通过这个问题,我的意思是Django框架是您创建web应用程序所需的全部,还是需要将其添加到rest框架中?web应用程序和API之间的联系是什么?web应用程序需要API才能运行吗?我希望能简单地解释一下两者之间的区别以及它们之间的联系。谢谢。

EN

回答 4

Stack Overflow用户

发布于 2021-08-08 09:39:48

当我第一次了解Django和Django Rest框架时,你的问题就是我在工作中经常问我的前辈的问题。

我得到的答案是Django Rest Framework帮助您更快地创建API端点,就像示例代码中的一个注释一样。我建议你应该阅读J.Hesters和C S here的评论。然而,我对答案也不是完全满意。在与他们合作一段时间后,以下是我的想法:

从技术上讲,让我们忘记Django Rest框架。你可以只使用Django来构建一个功能齐全的web应用,而不需要使用任何前端框架,比如React,Angular等等。实际上,这样做,你没有后端和前端的概念。你的web应用程序就是你的web应用程序,仅此而已。

然而,如果你想让你的前端看起来像复杂的CSS装饰,你可能会考虑使用前端框架(React,Angular)。当然,你也可以单独使用Django来让你的前端看起来很漂亮,但你必须编写很多代码来做到这一点,而且与前端框架相比,Django模板并不是很受欢迎。

现在,假设你想使用一个前端框架。如果您没有REST API,而您的前端代码试图从您的某个URL请求数据,那么您将获得一个字符串数据或一个类似于使用curl获得的超文本标记语言页面,那么为您的前端获取这些数据是没有用的。然而,如果你有一个REST API,你的后端数据将以你的前端代码可以理解的方式被序列化,并将返回的数据反序列化为一些你可以正确使用的数据对象,比如字典。

现在,Django vs Django Rest框架。你可以单独使用Django来制作REST API,但你必须编写更多的代码,做更多的设计,就像上面示例中显示的注释之一。通过使用Django Rest框架,您可以编写更少的代码并更好地重用您的代码。

另外,我认为你可能想看看API和REST API之间的区别。它们可以互换使用,但它们并不相同。例如,当您使用Django时,您就是在使用Django API。REST(ful) API只是一种用于客户端-服务器web开发的API。

此外,库和API是相似的,但不是相同的。

票数 1
EN

Stack Overflow用户

发布于 2021-06-23 01:42:46

Django创建包含网页的网站,而Django REST Framework构建允许在万维网上传输数据的web API。

票数 0
EN

Stack Overflow用户

发布于 2021-06-24 18:20:40

Django是python中的web开发框架,而Django Rest framework是Django中用来构建Rest API的库。Django Rest框架是专门为简化Django中的CRUD操作而设计的。

Django Rest框架使您可以轻松地将Django Server用作REST API。

REST代表“具象状态转移”,API代表应用程序编程接口。

您可以使用常规的Django构建restful api,但这将非常繁琐。DRF让一切变得简单。为了便于比较,这里是一个使用普通Django的简单GET-view,以及一个使用Django Rest框架的GET-view:

常规:

代码语言:javascript
复制
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,这就变成了:

代码语言:javascript
复制
from rest_framework import generics


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

请注意,使用DRF,您可以轻松地获得列表和创建视图以及身份验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68088101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档