浏览数:
524
from django.shortcuts import render, HttpResponse
from django.utils.decorators import method_decorator
from django.views import View
# Create your views here.
import logging
loger = logging.getLogger('django')
def outer(f):
def inner(*args, **kwargs): # 传入万能参数
print('before')
ret = f(*args, **kwargs)
print(ret)
print('after')
return ret
return inner
@outer
def index(request):
return HttpResponse('FBV--ok')
# CBV 使用装饰器需要借助django的 method_decorator
# 方法一:每个方法都加装饰器
class indexView(View):
@method_decorator(outer)
def get(self, request):
return HttpResponse('CBV--ok')
# @method_decorator(outer)
def post(self, request):
return HttpResponse('CBV--ok')
from django.shortcuts import render, HttpResponse
from django.utils.decorators import method_decorator
from django.views import View
# Create your views here.
import logging
loger = logging.getLogger('django')
def outer(f):
def inner(*args, **kwargs):
print('before')
ret = f(*args, **kwargs)
print(ret)
print('after')
return ret
return inner
@outer
def index(request):
return HttpResponse('FBV--ok')
class indexView(View):
@method_decorator(outer)
# 重写父类方法
def dispatch(self, request, *args, **kwargs):
print('before')
ret = super().dispatch(request, *args, **kwargs)
print('after')
return ret
# @method_decorator(outer)
def get(self, request):
return HttpResponse('CBV--ok')
# @method_decorator(outer)
def post(self, request):
return HttpResponse('CBV--ok')