天天看点

Django的CBV方式讲解

cbv 顾名知义就是通过类的方法来调用,我们在url中配置为如下路径

这里的Cbv是一个class 类,要想使用cbv方法,这个路径后面还得必须有一个as_view()这个是必须的固定格式

在views里面配置类,需要导入一个模块

Django的CBV方式讲解

login的页面配置代码

Django的CBV方式讲解

点击提交

Django的CBV方式讲解
这里通过查看View的源码,可以看到里面会有很多种提交方法 <code>http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']</code> 使用ajax的时候这些方法都是可以使用的。

另外继承类不光有View,还有很多的,查看源码就可以看到的

Django的CBV方式讲解
我的django版本号是 C:\Users\Tony&gt;python3 -m django --version 1.9.13

这种更具url来匹配方法的是通过反射方法(getattr)来做的。请求过来后先走dispatch这个方法,这个方法存在View类中。

如果需要批量对方法,例如get,post等方法做一些操作的时候,这里我们可以手动写一个dispatch,这个dispatch就和装饰器的效果一样。因为请求来的时候总是先走的dispatch。

这次我们在通过浏览器访问的时候,发现不管get或者post方法,都会走print代码,

Django的CBV方式讲解

本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/2061658,如需转载请自行联系原作者