ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

django使用restframework序列化查询集合(querryset)

2019-06-10 21:01:24  阅读:237  来源: 互联网

标签:__ ceshi serializers py querryset django import 序列化


第一:

pip install djangorestframework

第二:

在setting.py文件中的app添加名为:

 'rest_framework',

第三:再项目的APP下面新建名为(可以别的名字):serializers.py

第四:引入模型类到serializers.py,并在serializers.py中新建序列化类并定义要返回的字段

from rest_framework import serializers  #引入序列化的模块
from ceshi.models import ceshiList,recordList   #引入模型类

class ceshiListSer(serializers.ModelSerializer):
    detectionTime = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)   #用于重新设定时间的格式
    class Meta:
        model = ceshiList
        fields=("id","ceshiname","number","statusList","detectionTime ")
        # fields="__all__"   #可以像上面一样定义字段,也可以这样全部


class recordListSer(serializers.ModelSerializer):
    addTime = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S", required=False, read_only=True)
    class Meta:
        model = recordList
        fields = ("id", "ceshi2name", "addTime","ipList")
        # fields="__all__"

第五:在view.py中调用serializers.py中的类返回序列化的json

from ceshi.serializers import ceshiListSer,recordListSer
from ceshi.models import ceshiList,recordList
from django.http import JsonResponse

#就简单使用一个进行说明
def ceshifunc():
    ceshi = ceshiList.objects.all()  #获取模型类对象集合
    serializer = ceshiListSer(ceshi , many=True)   #many=True 可以返回多条,如果没有添加,只返回第一条
    return JsonResponse({"data": serializer.data})   #serializer.data是已经序列化的json数据  

 第六:如果前端需要不同样式的JSON格式,就需要在serializers.py中,再定义一个序列化类

标签:__,ceshi,serializers,py,querryset,django,import,序列化
来源: https://www.cnblogs.com/weilaibuxiangshuo/p/11000197.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有