【DRF】4. DRF视图开发RESTful API接口

四种方式:

  • 函数式编程:function based view
  • 类视图:classed based view
  • 通用类视图:generic classed based view
  • DRF的视图集 Viewsets

原生Django FBV(Funciton based view)编写,应用的views.py

import json
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

course_dict = {
    'name': '课程名称',
    'introduction': '课程介绍',
    'price': 9.99,
}

@csrf_exempt
def course_list(reqeust):
    if request.method == 'GET':
        return JsonResponse(course_dict)
        # 等同于:
        # return HttpResponse(json.dumps(course_dict), content_type='application/json')
    if request.method == 'POST':
        course = json.loads(reqeust.body.decode('utf-8'))
        # return JsonResponse(course, safe=False)
        return HttpResponse(json.dumps(course_dict), content_type='application/json')

原生Django CBV(Classed based view)编写,应用的views.py

import json
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.views import View

course_dict = {
    'name': '课程名称',
    'introduction': '课程介绍',
    'price': 9.99,
}


class CourseList(View):
    def get(self, request):
        return JsonResponse(course_dict)

    @csrf_exempt
    def post(self, request):
        course = json.loads(reqeust.body.decode('utf-8'))
        return HttpResponse(json.dumps(course), content_type='application/json')

DRF

posted @   chrjiajia  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示