浅析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  __getattr__与__setattr__使用方法
Sep 06 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
Python读取YUV文件,并显示的方法
Dec 04 Python
PyQt5实现简单数据标注工具
Mar 18 Python
python 五子棋如何获得鼠标点击坐标
Nov 04 Python
Python解析json代码实例解析
Nov 25 Python
python3爬取torrent种子链接实例
Jan 16 Python
使用pycharm和pylint检查python代码规范操作
Jun 09 Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 Python
10个python爬虫入门实例(小结)
Nov 01 Python
python中yield的用法详解
Jan 13 Python
Python快速优雅的批量修改Word文档样式
May 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php中常用的预定义变量小结
2012/05/09 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
JavaScript函数节流和函数去抖知识点学习
2018/07/31 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
urllib2自定义opener详解
2014/02/07 Python
python类中super()和__init__()的区别
2016/10/18 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
Python图片的横坐标汉字实例
2019/12/04 Python
QML用PathView实现轮播图
2020/06/03 Python
python交互模式基础知识点学习
2020/06/18 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
2020/08/24 Python
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
个人简历自我鉴定
2013/10/11 职场文书
护士求职信范文
2014/05/24 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
父亲节寄语大全
2015/02/27 职场文书
中标通知书范本
2015/04/17 职场文书
大学推普周活动总结
2015/05/07 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android