首页 > 其他 > 详细

Django自定义CBV

时间:2019-11-08 22:18:50      阅读:117      评论:0      收藏:0      [点我收藏+]

 

CBV,基于反射实现根据请求方式的不同,执行不同的方法.


查看view源码,使用反射getattr(self, request.method.lower(), self.http_method_not_allowed),调用对方法

原理:

url->view->dispatch->执行get,post....等方法

 

#Django_rest_framwork自定义CBV
from django.shortcuts import render
from django.views import View
from django.http import HttpResponse
# Create your views here.

class MyBaseView(object):
    def dispatch(self, request, *args, **kwargs):
        print(before)
        ret = super(MyBaseView, self).dispatch(request, *args, **kwargs)
        print(after)
        return ret

class studentView(MyBaseView, View):

    def get(self, request, *args, **kwargs):
        return HttpResponse(get)

    def post(self, request, *args, **kwargs):
        return HttpResponse(post)

    def put(self, request, *args, **kwargs):
        return HttpResponse(put)

    def delete(self, request, *args, **kwargs):
        return HttpResponse(delete)

 

Django自定义CBV

原文:https://www.cnblogs.com/hellozizi/p/11823201.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!