视图
类视图(CBV)
-
函数视图(FBV)
-
作用:可以将视图对应的不同请求方式以类中的不同的方法来区别定义
class Index(View):
def get(self, request, *args, **kwargs):
name = request.GET.get('name')
age = request.GET.get('age')
print(name, age)
return HttpResponse(name+age)
def post(self, request, *args, **kwargs):
name = request.POST.get('name')
age = request.POST.get('age')
print(name, age)
return HttpResponse('post')
- 类视图的好处:
- 代码可读性好
- 类视图相对于函数视图有更高的复用性,若其他地方需要使用该视图,直接继承即可
类视图装饰器
- 在类中使用装饰器时,不能直接添加装饰器,需要使用method_decorator将其转换为适用于类视图的装饰器
- method_decorator装饰器使用name参数指明被装饰的方法
# 定义装饰器模板
def outer(func):
def inner(request, *args, **kwargs):
# request.Response('我是一个装饰器')
print(request.method)
func(request, *args, **kwargs)
return inner