Django Python http方法接口(仅为自己记录)

本文介绍了一个学生管理系统中涉及的学生及班级实例操作API,包括获取所有学生信息、添加新学生、更新学生信息、删除学生记录等操作的具体实现方式。

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

1. 取所有实例,返回要用Json格式。

students = Student.objects.all().values()
return JsonResponse(list(students), safe=False)

2. 得到一个class实例对象

Class.objects.get(id=data.get("class_id"))

3. 删除一个实例对象

Student.objects.get(id=pk).delete()

4. request数据取出字典格式,查看request.data内是否有name数据

data = request.data
name = data.get("name", None)

或 , 但效率较低

"name" in data

5. request 请求允许访问

from rest_framework.views import APIView

 

增删查改接口代码:

from django.http import JsonResponse
from rest_framework.views import APIView
from student.models import Student, Class


class StudentView(APIView):


    def get(self, request, *args, **kwargs):
        students = Student.objects.all().values()
        return JsonResponse(list(students), safe=False)


    def post(self, request, *args, **kwargs):
        data = request.data
        class_ = Class.objects.get(id=data.get("class_id"))
        stu = Student(
            name=data.get("name"),
            gender=data.get("gender"),
            age=data.get("age"),
            class_id=class_
        )
        stu.save()
        res = {
            "status": "success",
            "data": data
        }
        return JsonResponse(res)


    def delete(self, request, pk):
        Student.objects.get(id=pk).delete()
        res = {
            "result": "delete!",
        }
        return JsonResponse(res)


    def put(self, request, pk):
        data = request.data
        stu = Student(name=data.get("name"),age=data.get("age"),gender=data.get("gender"),class_id= Class.objects.get(id=data.get("class_id")))
        stu.id=pk
        stu.save()
        res = {
            "value": "put",
        }
        return JsonResponse(res)


    def patch(self, request, pk):
        stu = Student.objects.get(id=pk)
        data = request.data
        name = data.get("name", None)
        gender = data.get("gender", None)
        age = data.get("age", None)
        class_id = data.get("class_id", None)
        if name:
            stu.name = name
        if gender:
            stu.gender = gender
        if age:
            stu.age = age
        if class_id:
            stu.class_id = Class.objects.get(id=class_id)
        stu.save()
        res = {
            "value": data
        }
        return JsonResponse(res)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值