Django 装饰器

定义:

def decorator(func):
  def method(request, *args, **kwargs):
    if request.session.has_key('username'):
      return func(request, *args, **kwargs)
    else:
      red = HttpResponseRedirect("/login/")
      red.set_cookie("url", request.get_full_path())
      return red

  return method

使用:

from XXX import XX

@decorator  

def look_for(request):

    pass

备忘:

  django中的装饰器形式上类似于ruby中的块,功能其实就是一个过滤器。在使用时,look_for 方法相当于参数传给decorator方法,look_for的参数则传给decorator内部的方法。定义decorator也很特别,它会返回一个实例或一个定义在内部的方法,像一个夹心饼一样,def method 然后 return method,中间用来判断是返回装饰器装饰的函数还是其他的方法或实例。

猜你喜欢

转载自www.cnblogs.com/wjbyzsa/p/9498454.html