Django Rest Framework(DRF)是构建强大且灵活的Web API的优秀工具。它基于Django,提供了一套用于构建Web API的组件和工具,简化了API开发过程,同时保留了Django的优雅和强大。
一、Web应用模式
1、前后端不分离
前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,前端与后端的耦合度很高。
这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。
2、前后端分离
后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。
至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。
前后端分离模式优点:
-
• 提升开发效率
-
• 完美应对复杂多变的前端需求
-
• 增强代码可维护性
二、什么是API 接口?
API(应用程序接口)
是一组定义了软件组件如何互相交互的规范。
API 是一些功能、定义或者协议的集合,通过 API 接口实现计算机软件之间的相互通信。对外封装完善,调用时无需学习 API 内部源码,依据 API 文档功能说明书来使用即可。
API接口的数据格式有哪些?
目前 API 接口支持 XLSX、JSON、XML、CSV、RDF
等数据格式,其中 JSON 和 XML 是主流的数据格式,几乎所有 API 接口都支持这两种数据格式。
而 RESTful API
是一种基于REST架构风格设计的API。它使用统一的接口和状态无关的通信方式来实现各种网络应用。这种设计风格使得RESTful API具有简单、灵活、可扩展和易于理解的特点,因此在Web开发中得到了广泛的应用。
Django Rest Framework 正是基于Rest架构风格设计的一款 后端API 框架。
三、RESTful API
RESTful
是一种定义 Web API 接口的设计风格,尤其适用于前后端分离的应用模式中。
这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源。
事实上,我们可以使用任何一个框架都可以实现符合restful规范的API接口。
1、数据安全
RESTful API 链接一般都采用https协议进行传输,以提高数据交互过程中的安全性。
2、接口特征
https://api.github.io/
https://github.io/api
3、多数据版本共存
https://api.github.io/v1
https://github.io/api/v2
4、数据即是资源,均使用名词(可复数)
接口一般都是完成前后台数据的交互,交互的数据我们称之为资源。
https://api.github.io/v1/users
特殊的接口可以出现动词,因为这些接口一般没有一个明确的资源,或是动词就是接口的核心含义
https://api.github.io/login
5、资源操作由请求方式决定
操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作。
https://api.github.io/users - get请求:获取所有用户
https://api.github.io/users/1 - get请求:获取ID为1的用户
https://api.github.io/users - post请求:新增一个用户
https://api.github.io/users/1 - put请求:整体修改ID为1的用户
https://api.github.io/users/1 - patch请求:局部修改ID为1的用户
https://api.github.io/users/1 - delete请求:删除ID为1的用户
6、通过在url上传参的形式传递搜索条件
https://api.github.io/v1/projects?page=5&per_page=10 指定第几页,以及每页的记录数
7、错误处理,应返回错误信息
{ error: "服务器发生错误" }
四、Django Rest Framework
1、DRF 简介
Django REST framework
是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。
DRF优点:
2、安装和设置
首先,确保你的项目已经安装了Django。然后,使用以下命令安装DRF:
pip install djangorestframework
接下来,在你的Django项目的settings.py
中添加以下行:
INSTALLED_APPS = [ # ... 'rest_framework', ]
from django.urls import path, include
urlpatterns = [
# ...
path('api/', include('rest_framework.urls')),
]
3、创建一个简单的API视图
现在,我们来创建一个简单的API视图。首先,定义一个序列化器:
from rest_framework import serializers
class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = 'all'
from rest_framework import generics
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelListView(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
from django.urls import path
from .views import MyModelListView
urlpatterns = [
# ...
path('mymodel/', MyModelListView.as_view(), name='mymodel-list'),
]
现在,你已经创建了一个简单的API视图,可以通过/api/mymodel/
访问。
五、结语
本篇文章小圈只是做了一个简单的引入以及介绍,DRF有很多其他功能和选项,可以满足更复杂的API需求。比如:更丰富的类视图、身份认证与权限管理等,后续小圈会抽空根据案例为大家带来更精细化的DRF学习教程。现在我们可以通过深入研究DRF文档和示例,更好地利用这个强大的工具。
希望这篇博文能够帮助你开始使用Django Rest Framework,构建出强大且高效的Web API。祝大家编码愉快!
原文地址:https://blog.csdn.net/z_ipython/article/details/134586057
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_5319.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!