FBV模式


def cookie(func):  
    def deco(request,*args,**kwargs):    
        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-Cookie的CBV和FBV的用户验证装饰器的更多相关文章

  1. Django视图函数:CBV与FBV (ps:补充装饰器)

    CBV 基于类的视图  FBV 基于函数的视图 CBV: 1 项目目录下: 2 urlpatterns = [ 3 path('login1/',views.Login.as_view()) #.as ...

  2. CBV和FBV用户认证装饰器

    FBV装饰器用户验证 CBV装饰器用户验证 装饰器位置 或 或

  3. Django中的CBV和FBV

    Django中的CBV和FBV 一.  CBV CBV是采用面向对象的方法写视图文件. CBV的执行流程: 浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执 ...

  4. Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request对象方法,属性和Response对象,form表单的上传

    Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request请求对象方法,属性和Response响应对象,form表单的上传 一丶CBV和FBV       在Django中存 ...

  5. Django之Cookie Session详解,CBV,FBV登陆验证装饰器和自定义分页

    Cookie Session和自定义分页   cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接 ...

  6. Django基础之CBV和FBV

    我们之前写过的是基于函数的view,就叫FBV.还可以把view写成基于类的. 1. FBV版 def add_class(request): if request.method == "P ...

  7. Django中间件、csrf跨站请求、csrf装饰器、基于django中间件学习编程思想

    django中间件 中间件介绍 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出. ...

  8. django之定义统一返回数据格式与GET/POST装饰器

    1. 为了返回给网页前端的格式统一,定义一个通用的插件类,返回统一格式数据 # enconding:utf-8 """ 定义一个插件类, ""&quo ...

  9. CBV 验证装饰器的使用

    下面是3种方式: from django.shortcuts import render, redirect from django.views import View # Create your v ...

随机推荐

  1. 使用w3m访问页面执行函数

    Ubuntu系统中 在计划任务中使用 w3m命令访问地址 locahost/index.php,或许使用curl "locahost/index.php"来访问地址

  2. 给表格控件DBGrid加上记录序号的列

    DBGrid使用起来还是很方便的,但就是没有显示记录序号的功能,必须自己加,参照老外给的解决方案如下: 方案1: 1- 在DBGrid建一个第一列 (列的名字起“NO”) 2- 在DBGrid事件 D ...

  3. C# 单例模式的多种简单实现

    什么是单例模式? 这里我就不做过多的解释了, 毕竟关于Singleton的资料实在是太多太多了.点击这里 1.简单的思路就是, 创建对象单例的动作转移到另外的行为上面, 利用一个行为去创建对象自身, ...

  4. 熟悉常用Linux操作

    cd命令:切换目录 (1)切换到目录 /usr/local cd /usr/local (2)去到目前的上层目录 cd .. (3)回到自己的主文件夹 cd ~ ls命令:查看文件与目录 (4)查看目 ...

  5. HDU4436_str2int

    很好的一个题目.对于理解后缀自动机很有用. 题目给你若干数字串,总长度不超过100000,任意一个串的任意一个子串都可以拿出来单独的作为一个数字.同一个数字只算一次. 问所有不同数字的和为多少? 嗯嗯 ...

  6. SpringMVC框架并发时出现id变成另外一个用户id问题

    今天测试写的代码,出现了在用一个账户登录操作的时候,操作记录的是另外一个id. 经过查找网上的解决方案确认了问题:在controller里面定义了一个userid属性,每次都通过userid传输值.然 ...

  7. STL 算法介绍

    STL 算法介绍 算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成.        <algorithm ...

  8. Mybatis笔记三:MyBatis的API文档

    mybatis文档:http://www.mybatis.org/mybatis-3/zh/getting-started.html mybatis-spring文档:http://www.mybat ...

  9. 51nod乘积之和

    题目链接 戳我 题意简述 你有长为\(n\)的序列和\(Q\)个询问,每次询问一个\(k\),求用\(k\)个数组成的不同方案的乘积的和. sol 显然要预处理一波. 考虑分治,左右两边都求出来后,怎 ...

  10. GreatSct -应用程序白名单bypass工具

      0x00 GreatSCT简介 GreatSCT目前得到了@ConsciousHacker的支持,该项目名为Great SCT(Great Scott).Great SCT是一个用于生成应用程序白 ...