其他分享
首页 > 其他分享> > Django之Apiview和Serializer使用

Django之Apiview和Serializer使用

作者:互联网


Django之Apiview使用


1.Apiview使用

1.1在user/urls.py中添加路由

urlpatterns=[
    path('apiview',views.UserInfoViewSet.as_view())
]

1.2创建user/serializer.py写序列化器

1.3在user/views.py中添加视图函数

form user.serializers import UserInfoSerializer
class UserInfoViewSet(APIView):
    # 查询用户信息
    def get(self,request,*args,**kwargs):
        # 一对多、多对多查询都是一样的语法
        obj = User.obj.all()
        ser = UserInfoSerializer(instance=obj,many=True) # 关联数据多个
        # ser = UserInfoSerializer(instance = obj[0]) # 关联数据一个
        return Response(ser.data,status=200)
    
    # 创建用户
    '''创建用户'''
    def post(self,request):
        ser = UserInfoSerializer(data=request.data)
        # 判断提交数据是否合法
        if ser.is_valid()
        ser.save()
        return Response(data='用户不存在',stutas=201)
    # 创建序列化对象,并将要反序列化的数据传递给data构造参数,进而进行验证
    ser = UserInfoSerializer(userinfo,data=request.data)
    if ser.is_valid():
        ser.save()
        return Response(data=ser.data,status=201)
    return  Responser(data=ser.errors,status=400)

2.测试接口

2.1查询所以用户

http://192.168.56.100:8888/user/apiview/

2.2创建用户

http://192.168.56.100:8888/user/apiview

2.3更新用户信息

http://192.168.56.100:8888/user/apiview/?pk=7

2.4限流功能测试

http://192.168.56.100:8888/user/apiview/
'''修改syl/settings.py配置限速设置'''
REST_FRAMEWORK = {
#3.1 限流策略
'DEFAULT_THROTTLE_RATES': {
'user': '3/hour', # 认证用户每小时10次
'anon': '3/day',
},
}

标签:return,ser,Apiview,Django,def,user,序列化,data,Serializer
来源: https://www.cnblogs.com/xiangnuan/p/13747852.html