Django:前后端分离 djangorestframework开发API接口 serializer序列化认证组件
参考:https://blog.csdn.net/zhangmengran/article/details/84887206
目的:
使用serializer序列化器将QuerySet数据序列化为json数据,用django restframework开发后端接口将此json数据返回
serializer序列化
1.主要是序列化数据,将QuerySet集合中的ORM对象序列化成json字符串,作为接口数据返回(json格式)
一、编写models.py
from django.db import models class Sonar(models.Model): """ """ project = models.CharField(max_length=20) bugs = models.CharField(max_length=10) vulnerability = models.CharField(max_length=10) issue_count = models.CharField(max_length=10) issue_url = models.CharField(max_length=200) def __str__(self): return self.project
二、在utils包下的serializer.py文件中自定义一个类
from rest_framework import serializers class SonarSerializer(serializers.Serializer): # 要定义需要序列化的字段,注意:这里定义的字段的值必须和models.py中的字段保持一致,将models换为serializers就行 project = serializers.CharField(max_length=20) bugs = serializers.CharField(max_length=10) vulnerability = serializers.CharField(max_length=10) issue_count = serializers.CharField(max_length=10) issue_url = serializers.CharField(max_length=200)
三、然后编写视图类views.py
from django.shortcuts import render from rest_framework.views import APIView from util.serializer import SonarSerializer from rest_framework.response import Response from sonar.models import Sonar class SonarCount(APIView): def get(self, request, *args, **kwargs): # 查询出所有的数据,为QuerySet格式 sonar = Sonar.objects.all() total = sonar.count() # 参数:1.instance需要序列化的对象 2.是一个对象还是多个对象,如果是多个必须设置many=True serializer = SonarSerializer(instance=sonar, many=True) # 返回最终的json数据serializer.data return Response({"status": "success", "total": total, "rows":serializer.data})
四、最后设置路由:
from django.conf.urls import url from sonar.views import SonarCount urlpatterns = [ url(r'^sonarCount/', SonarCount.as_view()), ]
post测试一下
以上只是单表数据的序列化,下面看看序列化多表(一对多、多对多)
参考:https://blog.csdn.net/zhangmengran/article/details/84887206