FBV和CBV装饰器
FBV装饰器:
def cook(request): err_msg=""
if request.method == "GET":
return render(request,'cookie.html') if request.method == "POST": username = request.POST.get('username')
p = request.POST.get('password') dic = user_info.get(username)
print(dic) if not dic:
err_msg="用户不存在"
return render(request,'cookie.html',{'err_msg':err_msg}) if dic['pwd'] == int(p): res = redirect('/xiaoqing/cookie1')
# res.set_cookie('username_cookie',username) #设置cookie 关闭浏览器失效
# res.set_cookie('username_cookie',username,max_age=10) 设置cookie失效时间 10秒过期
import datetime
current_date=datetime.datetime.utcnow()
change_date=current_date+datetime.timedelta(seconds=5)
res.set_cookie('username_cookie',username,expires=change_date) #到哪个时间失效 # res.set_signed_cookie('username_cookie',username,salt='sdasdas') return res
else:
return render(request,'cookie.html')
cook函数set cookie
def auth(func): #装饰器 cookie认证 def inner(request,*args,**kwargs):
v = request.COOKIES.get('username_cookie')
print(v)
if not v:
return redirect('/xiaoqing/cookie') return func(request,*args,**kwargs) return inner @auth
def cook1(request):
#获取当前已经登录的用户 v=request.COOKIES.get('username_cookie') #获取cookie
# 或者 v=request.COOKIES['username_cookie'] #获取cookie # v=request.get_signed_cookie('username_cookie',salt='sdasdas') #获取加密cookie return render(request,'cookie1.html',{'current_user':v,})
CBV装饰器
def auth(func): #装饰器 def inner(request,*args,**kwargs):
v = request.COOKIES.get('username_cookie')
print(v)
if not v:
return redirect('/xiaoqing/cookie') return func(request,*args,**kwargs) return inner from django import views from django.utils.decorators import method_decorator #导入方法 @method_decorator(auth,name='dispatch') #类中全部方法做认证
class Order(views.View): # @method_decorator(auth) #单独方法做认证
def get(self,request):
v=request.COOKIES.get('username_cookie') return render(request,'cookie1.html',{'current_user':v,}) def post(self,request):
pass
FBV和CBV装饰器的更多相关文章
- django基础 -- 4. 模板语言 过滤器 模板继承 FBV 和CBV 装饰器 组件
一.语法 两种特殊符号(语法): {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 二.变量 1. 可直接用 {{ 变量名 }} (可调用字符串, 数字 ,列表,字典,对象等) ...
- CBV和FBV用户认证装饰器
FBV装饰器用户验证 CBV装饰器用户验证 装饰器位置 或 或
- [Python自学] day-21 (2) (Cookie、FBV|CBV装饰器)
一.什么是Cookie 1.什么是Cookie? Cookie是保存在客户端浏览器中的文件,其中记录了服务器让浏览器记录的一些键值对(类似字典). 当Cookie中存在数据时,浏览器在访问网站时会读取 ...
- django CBV装饰器 自定义django中间件 csrf跨站请求伪造 auth认证模块
CBV加装饰器 第一种 @method_decorator(装饰器) 加在get上 第二种 @method_decorator(login_auth,name='get') 加在类上 第三种 @met ...
- Django基础七之CBV装饰器和中间件
Django基础七之CBV装饰器和中间件 目录 Django基础七之CBV装饰器和中间件 1. CBV加装饰器 2. Django中间件 2.1 Django中间件介绍 2.2 自定义中间件 2.2. ...
- [oldboy-django][2深入django]FBV + CBV + 装饰器
FBV django CBV & FBV - FBV function basic view a. urls 设置 urls(r'^test.html$', views.test) b. vi ...
- Django之Cookie Session详解,CBV,FBV登陆验证装饰器和自定义分页
Cookie Session和自定义分页 cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接 ...
- cookie,session 的概念以及在django中的用法,以及cbv装饰器用法
cookie的由来: 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后 ...
- cbv装饰器 中间件 跨站请求伪造
给cbv下面的函数加装饰器 写一个验证用户登录的程序 前端页面 # 写一个装饰器验证session def login_auth(func): def inner(request,*args,**kw ...
随机推荐
- shell for 循环
test.sh #!/bin/bash for str in "C语言" "http://www.bilibili.com" "成立7年了" ...
- selenium+java 数据驱动
一.数据驱动测试概念 数据驱动测试是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离. 二.实施数据驱动测试的步骤: 1.编写测试脚本,脚本需要支持程序对象.文件或者数据库读入测试数据 ...
- 使用js写简易的倒计时
步骤 1.获取span标签2.获取现在的时间戳 3.获取未来的时间戳 4.将未来时间戳减去现在的时间戳等于相差的秒数 5.输出到页面 直接上代码 <span name="os" ...
- MySQL的随机数函数rand()的使用技巧
咱们学php的都知道,随机函数rand或mt_rand,可以传入一个参数,产生0到参数之间的随机整数,也可以传入两个参数,产生这两个参数之间的随机整数. 而在mysql里,随机数函数rand不能传参, ...
- 第一次java程序设计作业
通过JAVA语言的学习,使我对计算机语言有了更加深入的认识和理解.知道了许多JAVA语言与其他语言的区别和特性,及其在我们生活中所发挥的重要作用.最后用一句话表明在学习JAVA语言过程中的感受,那就是 ...
- ionic3 在windows环境下打包android 正式签名版APK
生成签名文件keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore demo为 ...
- ElasticSearch 6.2 Mapping参数说明及text类型字段聚合查询配置
背景: 由于本人使用的是6.0以上的版本es,在使用发现很多中文博客对于mapping参数的说明已过时.ES6.0以后有很多参数变化. 现我根据官网总结mapping最新的参数,希望能对大家有用处. ...
- java第四次上机
package bbb;public class Person { private String name; private int age; public Person(){ } public Pe ...
- python webdriver api-对启动的火狐浏览器添加配置
Webdriver启用的火狐不带插件,可以自已进行配置 先找到火狐的安装路径 C:\Program Files\Mozilla Firefox 步骤说明 在CMD中使用cd命令进入firefox.ex ...
- Django框架简介-模型系统
2.5 模型 2.5.1 ORM介绍 2.5.1.1 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现 ...