lok*_*oki 2 python django decorator
我正在使用django,我写了这个装饰器,带走了我为ajax视图找到的一些重复代码,我想知道你的意见(太基本,糟糕的设计,试试这个,好吧等等).
def ajax_only(func):
def _ajax_only(request,*args,**kwargs):
if not request.is_ajax():
return HttpResponse('<p>Ajax not supported.</p>')
else:
return func(request,*args,**kwargs)
return _ajax_only
Run Code Online (Sandbox Code Playgroud)
我在这里唯一的另一个提示是建议使用functools.wraps装饰器 - 它允许装饰函数保留一些属性(如函数名称),这使得调试更容易 - 上面的代码将是:
from functools import wraps
def ajax_only(func):
@wraps(func)
def _ajax_only(request,*args,**kwargs):
if not request.is_ajax():
return HttpResponse('<p>Ajax not supported.</p>')
else:
return func(request,*args,**kwargs)
return _ajax_only
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |