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