• View + django-rest-framework序列化


    demo目录

    RestDemo
    ├── App
    │ ├── admin.py
    │ ├── apps.py
    │ ├── init.py
    │ ├── migrations
    │ ├── models.py ------------------------------------------------数据模型
    │ ├── serializers.py ------------------------------------------------序列化模块
    │ ├── tests.py
    │ ├── urls.py
    │ └── views.py ------------------------------------------------CBV(class base view) 视图函数
    ├── manage.py
    └── RestDemo
    ​ ├── init.py
    ​ ├── settings.py
    ​ ├── urls.py
    ​ └── wsgi.py

    model模块

    from django.db import models
    
    class UserModel(models.Model):
        username = models.CharField(max_length=32)
        age = models.IntegerField()
    
        class Meta:
            db_table = 'user'
    

    serializers模块

    # 创建序列化类
    from rest_framework import serializers
    from App.models import UserModel
    
    class UserSerializer(serializers.ModelSerializer):
        class Meta:
            model = UserModel
            fields = ('username', 'age')
    
    

    views模块

    from django.http import HttpResponse, JsonResponse
    
    from django.views import View
    from App.models import UserModel
    from App.serializers import UserSerializer
    
    class UserResource(View):
        def get(self, request):
            user = UserModel.objects.first()
            serializer = UserSerializer(user)
            return JsonResponse(serializer.data)
    
        def post(self, request):
            users = UserModel.objects.all()
            '对多个对象进行序列化时注意many'
            serializers = UserSerializer(users, many=True)
            '忽略安全性'
            return JsonResponse(serializers.data, safe=False)
    
  • 相关阅读:
    c++拷贝构造函数和赋值运算符
    c++运算符定义为成员函数还是非成员函数
    c++重载运算符位置的限制
    为什么operator<<运算符重载一定要为友元函数
    动态规划求一定数量骰子和的概率
    vector之reserve的坑
    c++ decltype和auto对比学习
    asio的前摄器模式
    动态显示当前时间
    js遍历二维数组
  • 原文地址:https://www.cnblogs.com/sajinchang/p/10176855.html
Copyright © 2020-2023  润新知