首先这是一个django的接口工具,所以是建立在django上的。
配置
settings里的 INSTALLED_APPS 加入 rest_framework
简单用法
它提供了快捷路由,用法很简单:
在项目的url文件里可直接注册
from rest_framework.routers import DefaultRouter
from django.urls import re_path
# 创建路由类对象
router = DefaultRouter()
# 注册路由
router.register(r'你的路由', 路由类, base_name='路由名称')
urlpatterns = [
# 配置接口路由 re_path 以正则匹配
re_path('^', include(router.urls)),
]
路由名称一般与路由一致,也可以不写。
接下来是路由类
class PeopleViewSet(viewsets.GenericViewSet):
# 查询集合, 要返回给前端的数据
queryset = People.objects.all()
# 指定使用的序列化器
serializer_class = PeopleSearializer
People 为项目创建的表
序列化器为restfreamwork返回值的一致方式,写法如下(需新建文件用于存放序列化函数,用时引入即可)
class PeopleSearializer(serializers.ModelSerializer):
class Meta:
# 配置需要进行序列化的数据模型
model = People
# 配置需要进行序列化的字段 __all__ 表示所有
fields = '__all__'
# 指定值时是一个列表
# fields = ['name']
这样访问端口+路由(get请求)即可返回全部参数
这是基本的用法,可以在这些基础上加一些东西
(不同请求的处理):
视图类需要应对不同类型请求
restfreamwork也提供了这些方法,
只需让路由类继承restfreamwork内置的函数即可处理不同类型的请求。
比如处理post请求需要用到mixins.CreateModelMixin这个函数
from rest_framework import mixins, viewsets
from rest_framework.response import Response
class PeopleViewSet(mixins.CreateModelMixin, viewsets.GenericViewSet):
# 收到post请求是执行的函数
def create(self, request, *args, **kwargs):
return Response({‘msg’:‘success’})
其他的可以在mixins这个类中看到
这些只是处理不同请求:
当然不可能只有这么多东西,这只是简单的返回数据
还有的就是要根据要求返回数据,
首先,数据模型类中需要继承APIView
具体结构如下
from rest_framework.views import APIView
class BannerView(APIView):
def get(self, request):
return Response(data)
def post(self, request):
return Response(data)
可在函数内进行相应处理
按条件取数据的处理方式:
大致步骤如下:
首先获取请求中的条件参数
从表中取相应数据
利用序列化函数将数据对象返回成字典形式
代码示例
need = request.GET.get('id')
designer = Designer.objects.get(id=need)
designer_ser = DesigerSerializer(designer)
Designer为数据库表
DesigerSerializer为序列化函数
此时的designer_ser.data就是我们的数据了
额外
这个部分我也不是很懂,只知道作用
前提:
数据库表含有外键
designer = Designer.objects.get(id=request.GET.get('did'))
designer_ser = DesigerSerializer(designer)
# 一个很神奇的操作,可从被设置为设置外键的表内取数据
case_ser = CaseSerializer(designer.case_set.all(), many=True)
case_ser.data 为我们需要的数据
利用case_set莫名其妙的吧外键中的数据取了出来
不知到为什么,但应该很有用
本文介绍了如何在Django项目中使用Django Restframework构建API。内容包括配置Restframework,简单用法如快捷路由注册,序列化器的创建,以及视图类处理不同类型的HTTP请求,如GET和POST。此外,还提到了根据请求条件筛选数据的方法,并讨论了处理外键数据的额外功能。
1670

被折叠的 条评论
为什么被折叠?



