文章目录
- 1. 获取数据的接口
- 2. 添加数据的接口
- 3. 更新数据的接口
- 4. 删除数据的接口
获取所有的字段:
from rest_framework import views, serializers, response
from .. import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = "__all__"
class User(views.APIView):
def get(self, request):
qs = models.User.objects.all()
serializer = UserSerializer(qs, many=True)
return response.Response({
'status': 0,
'data': serializer.data
})
from rest_framework import views, serializers, response
from .. import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = ('id', 'name') # 只需要修改这里
class User(views.APIView):
def get(self, request):
qs = models.User.objects.all()
serializer = UserSerializer(qs, many=True)
return response.Response({
'status': 0,
'data': serializer.data
})
from rest_framework import views, serializers, response
from .. import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = ('id', 'name')
class User(views.APIView):
def get(self, request):
qs = models.User.objects.all()
serializer = UserSerializer(qs.first(), many=False) # 默认是False,修改这里
return response.Response({
'status': 0,
'data': serializer.data
})
添加数据:
from rest_framework import views, serializers, response
from .. import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = "__all__"
class User(views.APIView):
def post(self, request):
serializer = UserSerializer(data=request.data)
result = {'status': 0, 'data': None}
if serializer.is_valid():
instance = serializer.save()
result['data'] = instance.pk
return response.Response(result)
else:
result['status'] = 1
result['data'] = serializer.errors
return result
更新数据的接口:
from rest_framework import views, serializers, response
from .. import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = "__all__"
class UserDetail(views.APIView):
def put(self, request, pk):
instance = models.User.objects.filter(pk=pk).first()
result = {'status': 0, 'data': None}
if not instance:
result['status'] = 1
result['data'] = '数据不存在!'
else:
# 如果没有传入instance,默认是None,表示添加数据而不是更新数据
serializer = UserSerializer(instance=instance, data=request.data)
if serializer.is_valid():
instance = serializer.save()
result['data'] = instance.pk
else:
result['status'] = 1
result['data'] = serializer.errors
return response.Response(result)
删除数据的接口:
from rest_framework import views, serializers, response
from .. import models
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = "__all__"
class UserDetail(views.APIView):
def delete(self, request, pk):
instance = models.User.objects.filter(pk=pk)
result = {'status': 0, 'data': None}
if not instance:
result['status'] = 1
result['data'] = '数据不存在,无法删除!'
else:
instance.delete()
result['data'] = []
return response.Response(result)