亲宝软件园·资讯

展开

Django CBV Django CBV模型源码运行流程详解

Wanlei 人气:0
想了解Django CBV模型源码运行流程详解的相关内容吗,Wanlei在本文为您仔细讲解Django CBV的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Django,CBV模型,源码,下面大家一起来学习吧。

在view文件中编写一个类,并配置好路由

class Test(View):
  def get(self, request, *args, **kwargs):
    return HttpResponse('cbv_get')

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

url(r'test/',views.Test.as_view()),

通过as_view()进入查看源码

实际上views.Test.as_view()是存的一个内存地址,加括号被调用,执行了as_view方法里的view方法,具体看下图:

核心是dispatch方法,在dispatch方法中完成了分发功能。

若要在Test类中自定义dispatch方法,代码如下:

class Test(View):
  def dispatch(self, request, *args, **kwargs):
    # 加代码
    obj = super().dispatch(self, request, *args, **kwargs)
    # 加代码
    # 实现了一个类似装饰器的效果,比如post请求,如果是json,手动从request里body取出来 再转一下
    # 或者走的时候加点cookie
    return obj
  
  def get(self, request, *args, **kwargs):
    return HttpResponse('cbv_get')

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

流程总结:

CBV模型

加载全部内容

相关教程
猜你喜欢
用户评论