序列化器基本介绍

    xiaoxiao2022-07-12  151

    日常写代码中,一个视图增删改查是必不可少的,而DRF框架可以帮助我们复用简化编写的,帮助我们大大提高REST API的开发速度,其中有个很重要的点就是序列化器。 序列化器分为两类;

    序列化功能:将对象转换为字典。 1)序列化单个对象 2)序列化多个对象 3)关联对象的嵌套序列化反序列化功能: 数据校验:补充验证 数据保存:新增create或更新update

    For example:

    工作时回答了一位同事的问题,现在模拟一个BUG实现并解答的问题

    单独运行tests.py文件时出现了一个BUG,如下: 代码如下:

    from rest_framework import serializers import json from booktest.models import BookInfo, HeroInfo from booktest.serializers import BookInfoSerializer # if __name__ == "__main__": # # hero = HeroInfo.objects.get(id=1) # # serializer = HeroInfoSerializer(hero) # # drf = serializer.data # # drf = json.dumps(drf, indent=1, ensure_ascii=False) # print(res) # if __name__ == "__main__": # books = BookInfo.objects.all() # QuerySet # # serializer = BookInfoSerializer(books, many=True) # # drf = serializer.data # # drf = json.dumps(drf, indent=1, ensure_ascii=False) # print(drf)

    解决方法: 出现这个BUG是因为运行单个py文件时,需要指定设置Django运行所依赖环境变量,让django环境进行一次初始化,否则,会出现如上BUG,项目整个运行则不会发生。在文件的导包路径上方加几行代码就能解决这个问题,如下:

    import os if not os.environ.get('DJANGO_SETTINGS_MODULE'): os.environ.setdefault("DJANGO_SETTINGS_MODULE", "drf_demo.settings") import django django.setup()
    最新回复(0)