之前介绍了FBV和CBV ,下面我们看一下CBV中的dispatch

dispatch函数在类View中定义,作用就是通过反射查找get或post函数,所以在执行get或post函数之前,dispatch函数是肯定会被执行的。因此我们可以通过super,来重写dispatch,达到一个类似装饰器的功能。
views.py
from django.shortcuts import render
from django.views import View class Index(View): def dispatch(self, request, *args, **kwargs):
print('Before')
ret = super(Index, self).dispatch(request, *args, **kwargs)
print('After')
return ret def get(self, req):
print('method is :' + req.method)
return render(req, 'index.html') def post(self, req):
print('method is :' + req.method)
return render(req, 'index.html')

  

后台输出:

Before
method is :GET
After
Before
method is :POST
After

可见,我们可以在执行get或者post函数时,通过dispatch函数做一些自己想做的事情。

最新文章

  1. 关于ubuntu16无线网卡RTL8723BE频繁掉线及信号不足的解决办法
  2. NC nc5.x报表设置合计行是否显示
  3. win7 中maven安装
  4. OpenStack 计算节点关机,虚拟机状态解决办法
  5. jquery.ajaxfileupload.js
  6. 设置ViewController 数据源无法改变view
  7. nginx请求体读取(二)
  8. Sql Server 2008/2005 数据库还原出现 3154错误
  9. 内Cool超人
  10. Python3基础 lambda表达式 简单示例
  11. 自动清理SQLServerErrorLog错误日志避免太大
  12. PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)
  13. 9.4、Libgdx简单字符输入
  14. mp的猜猜看
  15. zip4j压缩
  16. 使用Domain-Driven创建Hypermedia API
  17. Python官方操作Excel文档
  18. yield和send函数
  19. qt窗口最小化之后无法打开
  20. Apache Ignite 学习笔记(三): Ignite Server和Client节点介绍

热门文章

  1. STM32F103: NRF24L01
  2. 【PAT-L2-020】功夫传人
  3. LeetCode OJ:Remove Nth Node From End of List(倒序移除List中的元素)
  4. 获取Activity的返回参数
  5. 模拟form提交数据
  6. 20165210 Java第五次实验报告
  7. 如何在JM8.6编码端提取QDCT?
  8. 关于iframe和div窗口中ajax请求200状态时执行的回调问题
  9. 打造属于自己的安卓menu
  10. R 语言赋值运算符:`<-` , `=`, `<<-`