Django2 中API创建与使用
1、先设置setting文件
INSTALLED_APPS = [
'rest_framework',
]
2、创建一个 serializers.py 文件
引入需要引入的对象
from rest_framework import serializers
from .models import *
对需要序列化的属性进行序列化
class UserinfoSerializer(serializers.ModelSerializer):
#创建序列化对象
company = serializers.ReadOnlyField(source='company .name')
#这里是外键对象的属性,source = ‘外键名.外键对象里的属性’,这里的name是公司表里的属性名name
class Meta:
model = Warning
fields=('id','uname','upwd','wtype','company')
#序列化的字段
def to_representation(self, instance):
data = super().to_representation(instance)
return data
#返回data数据
3、配置urls
from rest_framework.routers import SimpleRouter
re_path('userinfo/(?P<pk>[0-9]+)',Userinfo_view.as_view()),
#对单条数据增删改查
path('userinfo/',Userinfo_view_all.as_view()),
#查看所有数据
在url里应该先单条后全部,因为查询单条数据的url符合全部的url路径
4、配置views
from rest_framework import generics
from rest_framework.views import APIView
from rest_framework.response import Response
class Userinfo_view_all(APIView):
def get(self,request):
obj = Userinfo.objects.all()
message = UserinfoSerializer(obj,many=True)
return Response(message.data)
###传递所有关系表对象
class Userinfo_view(mixins.ListModelMixin,
mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
mixins.CreateModelMixin,
generics.GenericAPIView):
#传递单个关系表对象
queryset = Userinfo.objects.all()
serializer_class = UserinfoSerializer
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
return self.update(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)