说明
- View类解释(as_view,view,dispatch)
- getatter反射函数使用及解释
一、View类解释(as_view,view,dispatch)
- View流程结构
from django.views import View
class 类名(View):
def method(request):
return template
- as_view—>view函数
路由中引入的是函数,path(str_path,自定义类名.as_view())
其中as_view()返回的是view函数
def view(cls,request,*args,**kwargs):
self = cls(*args,**kwargs)
#cls是谁调用就是谁
return self.dispatch(request,*args,**kwargs)
- 分发(dispatch)
def dispatch(self,request,*args,**kwargs):
if(request.method.lower() in self.http_method_names):
hander = getattr(self,request,request.method.lower(),self.http_method_not_allowed)
else:
hander = self.http_method_not_allowed #错误页面
return hander(request,*args,**kwargs)
二、getatter反射函数使用及解释
- getatter功能
- 使用方法
var = getattr(对象,属性字符串 | 函数字符串,找不到时调用它)
#等价于:对象.属性 | 函数
三、super()父类函数
- 功能:是调用父类
- 方法
super().父类属性
四、类的初始化(js、python)
作用是为类传值
- python
def __init__(self,var,....):
self.var = var
...
- js
constructor(var,...){
thsi.var = var
}