drf

一.引子

  1.什么是编程呢?

    ---数据结构和算法的结合;

  2.什么是rest呢?

    总结来说一句话:url用来唯一定位资源,http请求方式来区分用户行为;

  3.getattr,hasattr,setattr动态的对对象的属性进行操作;

  4.self的定位:永远指向调用者;

  5.http请求数据的编码协议,用来告诉服务端如何解码数据;

  6.form enctype:urlencode(&&连接),multi-formdata,text/plain;

  7.Javascript里面object和json之间的转换,object-->json(Json.stringify),json-->object(Json.parse)

二.接口设计

1.rest接口设计规范

  --接口设计规范

GET       127.0.0.1:8000/books/            #获取所有数据
GET       127.0.0.1:8000/books/{id}/     #获取单条数据
POST     127.0.0.1:8000/books/            #添加一条数据
DELETE  127.0.0.1:8000/books/{id}/    #删除一条数据
PUT       127.0.0.1:8000/books/{id}/     #修改一条数据

 view.py

class BookView(View):
        def get(self,request):
            pass
        def post(self,request):
            pass


class BookSingleView(View):
        def get(self,request,nid):
            pass
        def delete(self,request,nid):
            pass
        def put(self,request,nid):
            pass

  -返回数据规范

GET       127.0.0.1:8000/books/            #获取所有数据 [{},{},{},{}]
GET       127.0.0.1:8000/books/{id}/     #获取单条数据 {}
POST     127.0.0.1:8000/books/            #添加一条数据 {}(新增的数据)
DELETE  127.0.0.1:8000/books/{id}/    #删除一条数据  返回空       
PUT       127.0.0.1:8000/books/{id}/     #修改一条数据   {}(更新后的数据)

2.序列化组件的使用及接口设计

  --get接口

  2.1 创建models.py

  2.2 urls.py

  2.3 views.py

    开始使用序列化

导入模块:from rest_framework import serializers
建立一个序列化类
    class BookSerializer(serializers.Serializer):
        字段可以自定义
获取queryset
    origin_data = Book.objects.all()
开始序列化
    serialized_data = BookSerializer(orgigin_data,many=True)
获取序列化后的数据,返回给客户端
    return Response(serialized_data.data)

  

  

原文地址:https://www.cnblogs.com/liuqingyang/p/10078909.html