01,CBV与FBV
Posted pontoon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01,CBV与FBV相关的知识,希望对你有一定的参考价值。
什么是FBV、CBV?CBV怎么用?
什么是FBV?
FBV就是视图使用函数处理。不再赘述
什么是CBV?
同理CBV就是视图使用Class类来处理
Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:
-
提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
-
可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性
一次完整的CBV过程
from django.views import View (View源码分析)
![技术分享图片](index_files/4cb71d7b-0e9c-45ac-ab70-8271f25aecfc.png)
点击去看看.as_view()方法
![技术分享图片](index_files/e72f4a6d-3f89-488a-9519-815207232a9e.png)
![技术分享图片](index_files/776fef56-d83a-431a-b66c-5bf757274823.png)
![技术分享图片](index_files/91d85519-9538-447a-ae23-10b5b1dc8443.jpg)
在到self.dispatch()
![技术分享图片](index_files/9d292ab9-21cf-4e44-a3c4-a64d88b8f79f.jpg)
一个反射
![技术分享图片](index_files/61bb1b9e-5dd4-4966-a8f6-1e21b0f94cee.jpg)
![技术分享图片](index_files/7d69ece6-8fb9-4e44-92b4-f2d5fbdaff4b.jpg)
OK 源码分析至此结束!
https://www.cnblogs.com/yuanchenqi/articles/8715364.html
以上是关于01,CBV与FBV的主要内容,如果未能解决你的问题,请参考以下文章