Django框架DRF(Django RESTful framework)序列化 serialize使用

本文介绍两种在Django中实现RESTful API的方法,用于从数据库中获取课程数据并将其转换为JSON格式返回。第一种方法是手动构造JSON响应,第二种方法则利用Django的序列化功能。此外,还提供了相应的models.py文件代码,展示了Course模型的定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方案1:

# 方案1view.py文件
import json
from django.shortcuts import HttpResponse
from rest_framework.views import APIView
from .models import Course


class CourseView(APIView):
    def get(self, request):
        course_list = list()
        for course in Course.objects.all():
            course = {
                "course_name": course.course_name,
                "description": course.description
            }
            course_list.append(course)
        return HttpResponse(json.dumps(course_list, ensure_ascii=False))

方案2:

# 方案2views.py文件内容
# 导入Django原生的序列化模块
from django.core.serializers import serialize
from rest_framework.views import APIView
from .models import Course
from django.shortcuts import HttpResponse

class CourseView(APIView):
    def get(self, request):
        origin_data = Course.objects.all()
        # 开始序列化
        serialized_data = serialize("json", origin_data)
        print(serialized_data)
        return HttpResponse(serialized_data)

注意:JsonResponse只能对字典操作,其他不行.题外话,不知道的可以不用理会

以上两种方法使用的是一个数据库表模型.

models.py文件

class Course(models.Model):
    course_name = models.CharField(max_length=32)
    description = models.CharField(max_length=128)

    def __str__(self):
        return self.course_name

 

转载于:https://www.cnblogs.com/apollo1616/articles/10083841.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值