django学习 笔记---给cookie添加装饰器(FBV和CBV模式)
2018-03-24 12:37
621 查看
接上一篇博文的例子
FBV模式def cookie(func):
def deco(request,*args,**kwargs):
# FBV 不太清楚为什么要写两次u,可能是内部吧?如果是正常的装饰器应该一次就够了
u = request.get_signed_cookie('username', salt='user', default=None)
if not u:
return render(request,'login.html')
return func(request,*args,**kwargs)
return deco
@cookie
def houtai(request):
u = request.get_signed_cookie('username',salt='user',default=None)
return render(request,'houtai.html',{'user':u})
CBV模式
FBV模式def cookie(func):
def deco(request,*args,**kwargs):
# FBV 不太清楚为什么要写两次u,可能是内部吧?如果是正常的装饰器应该一次就够了
u = request.get_signed_cookie('username', salt='user', default=None)
if not u:
return render(request,'login.html')
return func(request,*args,**kwargs)
return deco
@cookie
def houtai(request):
u = request.get_signed_cookie('username',salt='user',default=None)
return render(request,'houtai.html',{'user':u})
CBV模式
from django.utils.decorators import method_decorator from django import views # @method_decorator(cookie,name='dispatch') # dispatch的便捷写法 class CBVtest(views.View): @method_decorator(cookie) # 给dispatch方法添加装饰器,那么下面所有的get,post都会添加 def dispatch(self, request, *args, **kwargs): return super(CBVtest,self).dispatch(request,*args,**kwargs) # @method_decorator(cookie) def get(self,request): u = request.get_signed_cookie('username',salt='user',default=None) return render(request,'houtai.html',{'user':u}) def post(self,request): return HttpResponse('post ok')
相关文章推荐
- Django框架学习笔记(6.FBV和CBV简单介绍)
- django学习笔记---form组件验证,如何给form组件添加样式
- 装饰器模式学习笔记
- Django(CBV/FBV/COOKIE/SESSION/TEMPLATE/HEADER)
- 分享:Django学习笔记(4)---ManyToMany 添加、删除关联、查询
- django学习笔记整理(1)django的MTV模式
- django学习笔记---结合cookie,onchange事件写出一个分页
- Django学习笔记(4) -- Admin模块添加富文本编辑器kindeditor
- java学习笔记-设计模式8(装饰器模式)
- Django学习笔记:为Model添加Action
- Header First设计模式学习笔记——装饰器模式
- 设计模式学习笔记——装饰器模式
- django学习笔记---cookie
- Django学习笔记(4)---ManyToMany 添加、删除关联、查询
- Django 开发学习笔记(8)- 开发表单页面,让用户添加内容
- Django学习笔记2 模板继承、添加页面
- python 学习笔记十九 django深入学习四 cookie,session
- 【学习笔记javascript设计模式与开发实践(迭代器模式)----7】
- 设计模式学习笔记(10)——桥接模式