zoukankan      html  css  js  c++  java
  • DRF单表序列化和反序列化

    • 安装 djangorestframework

      pip install djangorestframework
    • 将rest_framework注册到app上

      INSTALLED_APPS = [
          'rest_framework',
          'app01'
          ....
      ]
    • urls

      from django.urls import path
      from . import views
      urlpatterns = [
          path('index/',views.UserView.as_view())
      ]
    • 在models.py

      from django.db import models
      
      # 用户
      class User(models.Model):
          name = models.CharField(max_length=32,unique=True,null=True)
    • 在 app01 文件下 新建 serializer.py

      from rest_framework import serializers
      from .models import User
      
      # 序列化
      class UserSerializers(serializers.ModelSerializer):
      
          class Meta:
              model = User
              fields = '__all__'
      # 反序列化        
      class UserUnSerializer(serializers.Serializer):
          name = serializers.CharField(max_length=32)
          password = serializers.CharField(max_length=255)
         # 添加数据
          def create(self,data):
              return User.objects.create(**data)
        # 更新数据
          def update(self,instance,data):
              return instance.update(**data)
    • 在 views

      from rest_framework.response import Response
      from rest_framework.views import APIView
      from . import models
      from .serializer import UserSerializers
      
      class UserView(APIView):
      
          def get(self,request):
            user = models.User.objects.all()
              # 序列化 将对象转成json串
              data = UserSerializers(user,many=True)
              return Response(data)
      
           # 添加数据
          def post(self,request):
              name = request.POST.get('name','').strip()
              password = request.POST.get('password','').strip()
              dic = {"name":name,"password":password}
              user = UserUnSerializer(data=dic)
              if user.is_valid():
                  user.save()
                  return HttpResponse('post-ok')
              return HttpResponse('post-no')
      
          # 更新数据
          def put(self,request):
              id = request.POST.get('id','0')
              obj = models.User.objects.filter(id=id)
              name = request.POST.get('name','').strip()
              dic = {"name":name}
              user = UserUnSerializer(obj,data=dic)
              if user.is_valid():
                  user.save()
                  return HttpResponse('put-ok')
              return HttpResponse('put-no')
  • 相关阅读:
    JS基础三
    淘宝 NPM 镜像使用
    zepto的tap事件的点透问题的几种解决方案
    Web 通信 之 长连接、长轮询(long polling)(转载)
    命令模式坚决svn树冲突(local unversioned, incoming add upon update)
    svn st 状态详解
    Atom与markdown
    chrome调试创建sq设备进行调试
    webpack 使用教程--实时刷新测试
    前端资源
  • 原文地址:https://www.cnblogs.com/nbzyf/p/12066945.html
Copyright © 2011-2022 走看看