• 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')
  • 相关阅读:
    Python 获取学校图书馆OAPC账号对应的身份证号码
    利用Python获取ZOJ所有题目的名字
    android wifi Beacon帧解析
    比较skb_clone和skb_cpoy
    查找链表的中间节点
    linux wifi wpa_cli及hostapd_cli命令总结
    android wifi I2C总线
    android wifi P2P CONNECT, INVITE和JOIN流程选择
    android wifi ANR问题分析总结
    android 编译代码注意事项
  • 原文地址:https://www.cnblogs.com/nbzyf/p/12066945.html
Copyright © 2020-2023  润新知