浅析Django中关于session的使用


Posted in Python onDecember 30, 2019

一、Session的概念

cookie是在浏览器端保存键值对数据,而session是在服务器端保存键值对数据
session 的使用依赖 cookie:在使用Session后,会在Cookie中存储一个sessionid的数据,每次请求时浏览器都会将这个数据发给服务器,服务器在接收到sessionid后,会根据这个值找出这个请求者的Session。

二、Django中session的使用

session键值对数据保存

浅析Django中关于session的使用

session数据默认保存在django项目的一张数据库表中(表名为:django_session),保存格式如下:

浅析Django中关于session的使用

 三、数据操作:

以键值对的格式写session

request.session['键']=值

根据键读取值

request.session.get('键',默认值)
# 或者
request.session['键']

清除所有session,在存储中删除值的部分 

request.session.clear()

清除session数据,在存储中删除session的整条数据

request.session.flush()

删除session中的指定键及值,在存储中只删除某个键及对应的值

del request.session['键']

设置session数据有效时间; 如果不设置,默认过期时间为两周

request.session.set_expiry(value)

  • 如果value是一个整数,则 session数据 将在value秒没有活动后过期。
  • 如果value为None,那么会话永不过期。
  • 如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期。

四、以下是使用例子:

# 发短信接口
def sms_send(request):
 # http://localhost:8000/duanxin/duanxin/sms_send/?phone=18434288349
 # 1 获取手机号
 phone = request.GET.get('phone')
 # 2 生成6位验证码
 code = aliyunsms.get_code(6, False)
 # 3 缓存到Redis
 #cache.set(phone,code,60) #60s有效期
 #print('判断缓存中是否有:',cache.has_key(phone))
 #print('获取Redis验证码:',cache.get(phone))
 #暂时用session处理
 request.session['phone'] = code
 request.session.set_expiry(300) #设置5分钟后过期
 print('判断缓存中是否有:', request.session.get('phone'))
 print('获取session验证码:',request.session.get('phone'))
 # 4 发短信
 result = aliyunsms.send_sms(phone, code)
 return HttpResponse(result)
# 短信验证码校验
def sms_check(request):
 # /duanxin/sms_check/?phone=xxx&code=xxx
 # 1. 电话和手动输入的验证码
 phone = request.GET.get('phone')
 code = request.GET.get('code')
 # 2. 获取redis中保存的code
 #print('缓存中是否包含:',cache.has_key(phone))
 #print('取值:',cache.get(phone))
 #cache_code = cache.get(phone)
 #获取session里的code
 print('取值:', request.session.get('phone'))
 cache_code = request.session.get('phone')
 # 3. 判断
 if code == cache_code:
 return HttpResponse(json.dumps({'result':'OK'}))
 else:
 return HttpResponse(json.dumps({'result':'False'}))

总结

以上所述是小编给大家介绍的Django下关于session的使用,希望对大家有所帮助!

Python 相关文章推荐
python实现清屏的方法
Apr 30 Python
Python函数中的函数(闭包)用法实例
Mar 15 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
Python图像处理库PIL的ImageGrab模块介绍详解
Feb 26 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
python selenium 获取接口数据的实现
Dec 07 Python
Pytorch可视化的几种实现方法
Jun 10 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 #Python
在Python中利用pickle保存变量的实例
Dec 30 #Python
python Popen 获取输出,等待运行完成示例
Dec 30 #Python
Python3常见函数range()用法详解
Dec 30 #Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 #Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 #Python
用python爬取历史天气数据的方法示例
Dec 30 #Python
You might like
PHP导出Excel实例讲解
2016/01/24 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
调用js时ie6和ie7,ff的区别
2009/08/19 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
2015/09/09 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
Python实现模拟时钟代码推荐
2015/11/08 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python socket模块方法实现详解
2019/11/05 Python
英国钻石公司:British Diamond Company
2020/02/16 全球购物
聊城大学毕业生自荐书
2014/02/01 职场文书
消防安全责任书范本
2014/04/15 职场文书
泰山导游词
2015/02/02 职场文书
出国导师推荐信
2015/03/25 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
Python开发简易五子棋小游戏
2022/05/02 Python
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL