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,中间用来判断是返回装饰器装饰的函数还是其他的方法或实例。

 

posted @ 2018-08-18 20:01  危机边缘  阅读(450)  评论(0编辑  收藏  举报