python django 自定义 装饰器
来源:互联网 发布:苹果笔记本保护壳 知乎 编辑:程序博客网 时间:2024/05/17 08:43
# -*-coding:utf-8-*-__author__ = "GILANG (pleasurelong@foxmail.com)""""django 自定义用于view的装饰器"""from functools import wrapsdef object_does_not_exist(func): """ 不带参数的装饰器 """ @wraps(func) def returned_wrapper(request, *args, **kwargs): try: return func(request, *args, **kwargs) except ObjectDoesNotExist: raise Http404() return returned_wrapper@object_does_not_existdef detail(request): """ 用法 """ pass############################################################################def object_does_not_exist(redirect=None): """ 第一种写法:带参数的装饰器 """ def decorator(func): @wraps(func) def returned_wrapper(request, *args, **kwargs): try: return func(request, *args, **kwargs) except ObjectDoesNotExist: if redirect: return HttpResponseRedirect(redirect) else: raise Http404() return returned_wrapper return decorator@object_does_not_exist(redirect='/')def detail(request): pass# 记得加个闭合括号,否则会出现类似 takes exactly 1 argument (0 given) 的错误@object_does_not_exist()def foo(request): pass############################################################################def object_does_not_exist(func=None, redirect=None): """ 第二种写法:带参数的装饰器 第二种方法可以解决 got an unexpected keyword argument 错误。 """ def decorator(func): @wraps(func) def returned_wrapper(request, *args, **kwargs): try: return func(request, *args, **kwargs) except ObjectDoesNotExist: if redirect: return HttpResponseRedirect(redirect) else: raise Http404() return returned_wrapper if not func: def foo(func): return decorator(func) return foo else: return decorator(func) @object_does_not_exist(redirect='/')def detail(request): pass@object_does_not_existdef foo(request): pass
0 0
- python django 自定义 装饰器
- Django自定义装饰器
- django 自定义一个 装饰器
- Python-自定义装饰器
- Django自定义用于Views的装饰器
- 装饰器-Django登录
- Django-Cookie与装饰器
- python装饰器装饰类
- [python]python装饰器
- Python装饰器学习
- Python装饰器
- python 装饰器
- Python装饰器
- python 装饰器 应用
- python 装饰器2
- Python装饰器学习
- python装饰器
- python装饰器
- java 向Excel中添加数据
- Map.Entry
- OpenStack_Swift源码分析——Ring基本原理及一致性Hash算法
- 广西南宁商会商务运作合法吗?能做吗?国家不管吗?
- Apache做负载均衡配置
- python django 自定义 装饰器
- 查看表空间使用情况
- Android WebService开发
- SQLServer行转列
- IDL conver string to int
- 江南烟雨,是谁的一生叹息
- java解析json,并把jsonarray转为list
- 聚散匆匆,奈何情深缘浅
- win32项目移植到Android