login视图函数:
      def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
if username == 'jason' and password == '':
old_path = request.GET.get('next')
if old_path:
obj = redirect(old_path)
else:
obj = redirect('/home/')
# 用户登录成功 朝浏览器设置一个cookie
obj.set_cookie('name','jason',expires=7*24*3600)
return obj
return render(request,'login.html')

     制作登陆校验装饰器:
from functools import wraps
def login_auth(func):
@wraps(func)
def inner(request,*args,**kwargs):
# 校验cookie
# print(request.get_full_path())
old_path = request.get_full_path()
if request.COOKIES.get('name'):
return func(request,*args,**kwargs)
return redirect('/login/?next=%s'%old_path)
return inner 用户注销视图函数:
def logout(request):
rep = redirect("/login/")
rep.delete_cookie("user") # 删除用户浏览器上之前设置的usercookie值
return rep 设置cookie set_cookie()
使用cookie request.COOKIES
删除cookie delete_cookie

session用法大同小异
    session
设置session
request.session['name'] = 'jason' #这句话完成了下面三件事情
# 1.先生成一个随机的字符串
# 2.在django session表中存储该随机字符串与数据的记录
# 3.将随机的字符串发送给客户端浏览器 获取session
request.session.get('name')
# 1.django自动获取浏览器随机字符串取django session表里面比对
# 2.如果比对成功 会将当前随机字符串对应的数据赋值给request.session
# 3.通过request.session操作该数据(数据不存在也不会影响我们的业务逻辑) 浏览器会设置一个键为sessionid来存放session值 # 删除当前会话的所有Session数据,在用户注销时可用
request.session.delete()
  
# 删除当前的会话数据并删除会话的Cookie。在用户注册时可用
request.session.flush()
这用于确保前面的会话数据不可以再次被用户的浏览器访问
例如,django.contrib.auth.logout() 函数中就会调用它。 # 设置会话Session和Cookie的超时时间
request.session.set_expiry(value)
* 如果value是个整数,session会在些秒数后失效。
* 如果value是个datatime或timedelta,session就会在这个时间后失效。
* 如果value是0,用户关闭浏览器session就会失效。
* 如果value是None,session会依赖全局session失效策略。 django默认的session存活时间是两周(14天)******

Django之会话机制cookie、session使用的更多相关文章

  1. django设置并获取cookie/session,文件上传,ajax接收文件,post/get请求及跨域请求等的方法

    django设置并获取cookie/session,文件上传,ajax接收文件等的方法: views.py文件: from django.shortcuts import render,HttpRes ...

  2. java ->会话技术Cookie&Session

    会话技术Cookie&Session 会话技术简介 存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户 ...

  3. Django form组件 与 cookie/session

    目录 一.form组件 二.cookie.session 返回Django 组件 一.form组件 1.1 以注册功能为例 注册功能 1.渲染前端标签获取用户输入 --> 渲染标签 2.获取用户 ...

  4. JavaEE之会话技术Cookie&Session

    会话技术简介 存储客户端的状态 由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪         里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并 ...

  5. 会话技术Cookie&Session

    1.会话技术概述 从打开浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话.会话技术用于记录本次会话中客户端的状态与数据. 会话技术分为Cookie和Session: Cookie:数据存储 ...

  6. Web核心之会话技术Cookie&Session

    什么是会话技术? http协议是无状态协议.为了满足在多次请求之间数据进行交互,推出了会话技术. 会话概念:一次会话,指的是从客户端和服务器建立起连接开始,到客户端或服务器断开连接为止.中间可能进行多 ...

  7. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  8. php会话控制cookie/session

    设置cookie PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个: name( Cookie名)可以通过$_COOKIE[' ...

  9. Django2.2 会话技术cookie session token的区别以及实例介绍

    一.区别: 本人见解:使用自定义数据项进行加密,作为唯一身份识别,登陆时写入cookie(session基于这个).在显示相关数据 1.cookie 属于客户端会话技术(数据存储在客户端) 默认的Co ...

随机推荐

  1. Luogu P3690【模板】Link Cut Tree (LCT板题)

    省选前刷道LCT板题(话说之前没做这道题-) CODE #include<bits/stdc++.h> using namespace std; inline void read(int ...

  2. Python 10.2

    time 模块: strftime('%y%m%s',yesterday) ==>返回一个字符串代表的日期

  3. 老男孩Python==基础数据类型考试题

    转载 # Python基础数据类型考试题 # 考试时间:两个半小时 满分100分(80分以上包含80分及格) # 一,基础题. # 1, 简述变量命名规范(3分) # 1.变量由字母.数字.下划线任意 ...

  4. MySQL Bug#67718 浅谈B+树索引的分裂优化

    原文链接:http://hedengcheng.com/?p=525 问题背景 今天,看到Twitter的DBA团队发布了其最新的MySQL分支:Changes in Twitter MySQL 5. ...

  5. 开源分布式中间件 DBLE 快速入门指南

    GitHub:https://github.com/actiontech/dble 官方中文文档:https://actiontech.github.io/dble-docs-cn/ 一.环境准备 D ...

  6. js中4种遍历语法比较

    前言:本文主要比较for.for-in.forEach和for-of的异同以及优缺点. for for循环是最原始最易理解的循环遍历方式 for(var index = 0;index < ar ...

  7. C/C++应用--Window下获取硬件信息(CPU, 硬盘,网卡等)

    一.头文件如下: #include <Windows.h> #include <string> #include <iostream> #include <w ...

  8. java试题复盘——9月8日

    上: 1.可将语句块或方法设为同步使用的语句是(A) A synchronized              用于方法或者代码块前,使此方法或者代码变成同步的 B static             ...

  9. 下板不动, 上板匀速平板间流动(Crank-Nicolson格式)【转载】

    摘自<FLUENT流体工程仿真计算实例与分析>,程序略有修改 两个间距为1cm水平平板,如下图所示: 上板匀速平板间流动(Crank-Nicolson格式)[转载]"> 充 ...

  10. Maven的安装和配置(Windows 10)

    1. 官网下载Maven管理工具 官网:https://maven.apache.org/download.cgi 系统要求: JDK:Maven 3.3以上需要JDK 1.7以上版本支持 Memor ...