DRF使用Serializer来进行序列化和反序列化操作
在serlizers中添加
# -*- coding: utf-8 -*-
from rest_framework import serializers
from .models import *
class UserSer(serializers.Serializer):
name=serializers.CharField(max_length=64)
age=serializers.CharField(allow_blank=True)
home=serializers.CharField(max_length=64)
def create(self, validated_data):
return User.objects.create(**validated_data)
def update(self, instance, validated_data):
#instance 你的数据库里的模型类
#validated_data 传进来要修改的数据
instance.name=validated_data.get("name",instance.name)
instance.age=validated_data.get("age",instance.age)
instance.home=validated_data.get("home",instance.home)
instance.save()
return instance
# def validate_name(self,attrs):
# if attrs !='peter':
# raise serializers.ValidationError('不是peter本人')
# return attrs
def validate(self,attrs):
name=attrs["name"]
if name !="peter":
raise serializers.ValidationError('不是peter本人')
return attrs
serlizers.py
在app01views中添加
from django.shortcuts import render,HttpResponse
from django.views import View
from rest_framework.views import APIView
from rest_framework.response import Response
from django.http.response import HttpResponse,JsonResponse
# Create your views here.
# def hellow(request):
# return HttpResponse('hellow word app01')
from app02.models import User
from .serializer import * class test2(APIView):
def get(self,request):
data=request.query_params
return Response(data)
def post(self,request):
data=request.data
return Response(data)
class test1(View):
def post(self,request):
data=request.POST.get('name')
return HttpResponse(data)
def get(self,request):
data = request.GET.get('name')
return HttpResponse(data) class User1(View):
def post(self,request):
user=User.objects.all()
list=[]
for i in user:
data={
'name':i.name,
'age':i.age,
'home':i.home
}
list.append(data)
return JsonResponse({"data":list}) class UserView(APIView):
def get(self,request):
users=User.objects.all()
ser=UserSer(users,many=True)
data=ser.data
return Response(data)
def post(self,request):
data=request.data
ser=UserSer(data=data)
ser.is_valid()
print(ser.errors)
# ser.save()
return Response({"code":200})
def put(self,request):
data=request.data
id=request.data.get("id")
user=User.objects.get(id=id)
Ser=UserSer(user,data=data)
Ser.is_valid()
Ser.save()
return Response({"code":200})
Views.py
DRF使用Serializer来进行序列化和反序列化操作的更多相关文章
- 基于.net core封装的xml序列化,反序列化操作
需求: 由于在.net core中去除了Xml序列化XmlSerializer操作类.因此,在于一此数据传输当中出,需要用到对xml格式字符串的处理问题.因此封装了一个xml序列化与反序列化操作的类库 ...
- python json序列化与反序列化操作
python json序列化与反序列化操作 # dumps() dict-->str 序列化 # loads() str---dict 反序列化 result1 = json.dumps({'a ...
- java浅克隆和深克隆,序列化和反序列化实现深克隆(封装序列化和反序列化操作)
本篇博客内容: 一.浅克隆(ShallowClone)和深克隆(DeepClone) 二.序列化和反序列化实现深克隆 三.封装序列化和反序列化操作 ObjectOutputStream + 内存流By ...
- DRF框架(二)——解析模块(parsers)、异常模块(exception_handler)、响应模块(Response)、三大序列化组件介绍、Serializer组件(序列化与反序列化使用)
解析模块 为什么要配置解析模块 1)drf给我们提供了多种解析数据包方式的解析类 form-data/urlencoded/json 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些 ...
- java序列化与反序列化操作redis
笔者在使用SSM框架项目部分功能进行测试需要使用到对象的序列化与反序列化 第一种方式:jackson Demo package com.dznfit.service; import com.dznf ...
- drf框架serializers中ModelSerializer类简化序列化和反序列化操作
0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11 ...
- XML文件的读取、序列化和反序列化操作
public class XmlHelper { //从xml中获取MsgType public static string XMLSelect(string XML) { XmlDocument x ...
- DRF框架之Serializer序列化器的反序列化操作
昨天,我们完成了Serializer序列化器的反序列化操作,那么今天我们就来学习Serializer序列化器的最后一点知识,反序列化操作. 首先,我们定要明确什么是反序列化操作? 反序列化操作:JOS ...
- 前后端分离djangorestframework——序列化与反序列化数据
我们写好后端的代码,要把数据交给前端的展示的,这个数据以什么类型给前端呢?学到这里,我们已经知道这个数据最好是json字符串才行,因为网络间的传输,只认字符串或者二进制,字符串就是我们的数据,二进制就 ...
随机推荐
- 【Luogu】P1306 斐波那契公约数 题解
原题链接 嗯...很多人应该是冲着这个标题来的 (斐波那契的魅力) 1.分析题面 点开题目,浏览一遍题目,嗯?这么简单?还是蓝题? 再看看数据范围,感受出题人深深的好意... \(n,m \leq 1 ...
- setTimeout、同步、异步的理解
console.log('111'); setTimeout(()=>{ console.log('222') },1000); console.log('333'); setTimeout(( ...
- Reactor:深入理解reactor core
目录 简介 自定义Subscriber Backpressure处理 创建Flux 使用generate 使用create 使用push 使用Handle 简介 上篇文章我们简单的介绍了Reactor ...
- C/C++模运算(正负整数)
模运算 模运算:又称为取余运算 正整数的模运算 对于正整数a,b 如果\(a=q\times b+r\)其中\(0\le r < b\) 则有\(a \bmod b=r\)即 \(a\%b=r\ ...
- 2012年游戏软件开发独立本科段01B0815自考科目
01B0815自考科目 课程代码[学分] 课程名称 03708[02] 中国近现代史纲要 03709[04] 马克主义基本原理概论 03684[10] 综合英语(四) 01042[05] 应用数学 0 ...
- SpringBoot中的响应式web应用
目录 简介 Reactive in Spring 注解方式使用WebFlux 编程方式使用webFlux Spring WebFlux的测试 总结 简介 在Spring 5中,Spring MVC引入 ...
- 定制ubuntu的时候修改proseed
一个参数的修改 d-i clock-setup/utc-auto boolean false (不用utc) d-i clock-setup/ntp boolean false (不时间同步) d-i ...
- 使用 ffmpeg 命令直播推流
CMD使用到的命令 D: -> 表示进入D盘cd /live -> 表示进入某个路径 执行条件 1.ffmpeg.exe 与视频放在同一目录下,纯英文目录2.执行以上命令进入到ffmpeg ...
- SQL Server 数据库开启日志CDC记录,导致SQL Server 数据库日志异常增大
这几天单位的SQL Server业务数据生产库出现数据库日志增长迅速,导致最终数据无法写入数据库,业务系统提示"数据库事务日志已满",经过多方咨询和请教,终于将日志异常的数据库处理 ...
- MySQL存储索引InnoDB数据结构为什么使用B+树,而不是其他树呢?
InnoDB的一棵B+树可以存放多少行数据? 答案:约2千万 为什么是这么多? 因为这是可以算出来的,要搞清楚这个问题,先从InnoDB索引数据结构.数据组织方式说起. 计算机在存储数据的时候,有最小 ...