CBV中的dispatch
2024-09-03 14:44:36
之前介绍了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函数做一些自己想做的事情。
最新文章
- 关于ubuntu16无线网卡RTL8723BE频繁掉线及信号不足的解决办法
- NC nc5.x报表设置合计行是否显示
- win7 中maven安装
- OpenStack 计算节点关机,虚拟机状态解决办法
- jquery.ajaxfileupload.js
- 设置ViewController 数据源无法改变view
- nginx请求体读取(二)
- Sql Server 2008/2005 数据库还原出现 3154错误
- 内Cool超人
- Python3基础 lambda表达式 简单示例
- 自动清理SQLServerErrorLog错误日志避免太大
- PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)
- 9.4、Libgdx简单字符输入
- mp的猜猜看
- zip4j压缩
- 使用Domain-Driven创建Hypermedia API
- Python官方操作Excel文档
- yield和send函数
- qt窗口最小化之后无法打开
- Apache Ignite 学习笔记(三): Ignite Server和Client节点介绍
热门文章
- STM32F103: NRF24L01
- 【PAT-L2-020】功夫传人
- LeetCode OJ:Remove Nth Node From End of List(倒序移除List中的元素)
- 获取Activity的返回参数
- 模拟form提交数据
- 20165210 Java第五次实验报告
- 如何在JM8.6编码端提取QDCT?
- 关于iframe和div窗口中ajax请求200状态时执行的回调问题
- 打造属于自己的安卓menu
- R 语言赋值运算符:`<;-` , `=`, `<;<;-`