在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来进行序列化和反序列化操作的更多相关文章

  1. 基于.net core封装的xml序列化,反序列化操作

    需求: 由于在.net core中去除了Xml序列化XmlSerializer操作类.因此,在于一此数据传输当中出,需要用到对xml格式字符串的处理问题.因此封装了一个xml序列化与反序列化操作的类库 ...

  2. python json序列化与反序列化操作

    python json序列化与反序列化操作 # dumps() dict-->str 序列化 # loads() str---dict 反序列化 result1 = json.dumps({'a ...

  3. java浅克隆和深克隆,序列化和反序列化实现深克隆(封装序列化和反序列化操作)

    本篇博客内容: 一.浅克隆(ShallowClone)和深克隆(DeepClone) 二.序列化和反序列化实现深克隆 三.封装序列化和反序列化操作 ObjectOutputStream + 内存流By ...

  4. DRF框架(二)——解析模块(parsers)、异常模块(exception_handler)、响应模块(Response)、三大序列化组件介绍、Serializer组件(序列化与反序列化使用)

    解析模块 为什么要配置解析模块 1)drf给我们提供了多种解析数据包方式的解析类 form-data/urlencoded/json 2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解析,哪些 ...

  5. java序列化与反序列化操作redis

     笔者在使用SSM框架项目部分功能进行测试需要使用到对象的序列化与反序列化 第一种方式:jackson Demo package com.dznfit.service; import com.dznf ...

  6. drf框架serializers中ModelSerializer类简化序列化和反序列化操作

    0905自我总结 drf框架serializers中ModelSerializer类 基于seriallizer类进行简化 https://www.cnblogs.com/pythonywy/p/11 ...

  7. XML文件的读取、序列化和反序列化操作

    public class XmlHelper { //从xml中获取MsgType public static string XMLSelect(string XML) { XmlDocument x ...

  8. DRF框架之Serializer序列化器的反序列化操作

    昨天,我们完成了Serializer序列化器的反序列化操作,那么今天我们就来学习Serializer序列化器的最后一点知识,反序列化操作. 首先,我们定要明确什么是反序列化操作? 反序列化操作:JOS ...

  9. 前后端分离djangorestframework——序列化与反序列化数据

    我们写好后端的代码,要把数据交给前端的展示的,这个数据以什么类型给前端呢?学到这里,我们已经知道这个数据最好是json字符串才行,因为网络间的传输,只认字符串或者二进制,字符串就是我们的数据,二进制就 ...

随机推荐

  1. linux查看日志的几种方法

    linux 日志查看 tail.head. cat.tac.sed.less.echo 1.命令格式: tail       [必要参数]     [选择参数]     [文件] -f 循环读取 -q ...

  2. springboot自动装配原理,写一个自己的start

    springboot自动装配原理 第一次使用springboot的时候,都感觉很神奇.只要加入一个maven的依赖,写几行配置,就能注入redisTemple,rabbitmqTemple等对象. 这 ...

  3. Kubernetes-17:Kubernets包管理工具—>Helm介绍与使用

    Kubernets包管理工具->Helm 什么是Helm? 我们都知道,Linux系统各发行版都有自己的包管理工具,比如Centos的YUM,再如Ubuntu的APT. Kubernetes也有 ...

  4. php 断点续传以及100% 后台zip解压

    前台部分 <div class="col-md-12"> <div class="form-group"> <label clas ...

  5. 9、Django之模型层第四篇:进阶操作

    一 QuerySet对象 1.1可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. Entry.objects.all()[:5] # ...

  6. 为什么重写 equals() 方法,一定要重写 hashCode() 呢?| HashMap

    微信搜索「码农田小齐」,关注这个在纽约的程序媛,回复「01-05」可以获取计算机精选书籍.个人刷题笔记.大厂面经.面试资料等资源,么么哒- 首先我们有一个假设:任何两个 object 的 hashCo ...

  7. wpf 全局异常捕捉+简单日志记录

    `namespace MyApp { /// /// App.xaml 的交互逻辑 /// public partial class App : Application { public App() ...

  8. Sublime Text 3 安装插件与快捷键总结

    ublime Text 3 是一个了不起的软件.首先,它是一个干净,实用,可以快速的编写代码编辑器.它不仅具有令人难以置信的内置功能(多行编辑和VIM模式),而且还支持插件,代码片段和其他许多东西.很 ...

  9. python_sys.argv的使用

    # sys.argv练习 # 写一个python脚本,在cmd里执行 # python xxx.py 用户名 密码 cp 文件路径 目的地址 # python xxx.py alex sb cp D: ...

  10. Elasticsearch(6):文档查询

      为方便后续查询演示,我们先创建一个索引.创建索引请求如下: