django--视图函数的包装(Wrapping view function)
来源:互联网 发布:王思丽事件知乎 编辑:程序博客网 时间:2024/06/03 20:03
下边的代码包含很多重复的代码:
def my_view1(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/') # ... return render_to_response('template1.html')def my_view2(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/') # ... return render_to_response('template2.html')def my_view3(request): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/') # ... return render_to_response('template3.html')
每个视图都要检查用户是否已经认证,未认证会被重定向到/accounts/login/,我们可以这样:
def requires_login(view): def new_view(request, *args, **kwargs): if not request.user.is_authenticated(): return HttpResponseRedirect('/accounts/login/') return view(request, *args, **kwargs) return new_view
这样就可以在URLconf中直接使用requires_login来包装实现:
from django.conf.urls.defaults import *from mysite.views import requires_login, my_view1, my_view2, my_view3urlpatterns = patterns('', (r'^view1/$', requires_login(my_view1)), (r'^view2/$', requires_login(my_view2)), (r'^view3/$', requires_login(my_view3)),)
0 0
- django--视图函数的包装(Wrapping view function)
- Wrapper Function 包装函数
- Django视图 view
- Django视图(python函数)
- [转载]Python中包装(wrapping)与代理(delegation)
- Django View.py通用视图
- Django系列教程(5)-- 视图URLconf及视图函数的定义
- Django普通视图函数和基于类视图的分页
- Django-restframework04 基于类视图的视图函数
- Django框架全面讲解 -- Django Views(视图函数)
- 在 Django 的 View 中利用 function decorator 可实现一定程度的代码重用
- django的通用视图
- Loss Function view---关于损失函数的介绍
- OnInitialUpdate(单文档视图中的View类的成员函数)
- VS2013 bug : 无法使用std::function包装成员函数
- android view视图的层叠(叠加)
- android view视图的层叠(叠加)
- CRAN 的任务视图(View Task)
- GCD:嵌套dispatch_async时__block对象的一个内存陷阱
- 动态规划之石子合并
- C++ string 用法详解
- 比较好的 文章博客整理 持续更新。。。
- Java String对象的经典问题(new String())
- django--视图函数的包装(Wrapping view function)
- Vbox 未指定XXX网络名称 找不到网卡问题
- execute、executeQuery和executeUpdate之间的区别
- Android的View绘制过程,onMeasure()方法介绍
- UINavigationBar 自定义
- Cue:民用级别的医学数据监测设备
- android网络类型之2G-3G切换
- AjaxFileUploaderV2.1修改版
- hard link and soft link in Linux