浅析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 15 Python
用Python解析XML的几种常见方法的介绍
Apr 09 Python
使用Python的Twisted框架编写简单的网络客户端
Apr 16 Python
python简单的函数定义和用法实例
May 07 Python
python实现求解列表中元素的排列和组合问题
Mar 15 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
Python 查找list中的某个元素的所有的下标方法
Jun 27 Python
python print输出延时,让其立刻输出的方法
Jan 07 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
tensorflow的计算图总结
Jan 12 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
Python3爬虫中pyspider的安装步骤
Jul 29 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 过滤危险html代码
2009/06/29 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
php数组排序usort、uksort与sort函数用法
2014/11/17 PHP
js jquery数组介绍
2012/07/15 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
2017/03/19 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
Python实现监控程序执行时间并将其写入日志的方法
2015/06/30 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Django的Modelforms用法简介
2019/07/27 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python批量启动多线程代码实例
2020/02/18 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Tensorflow全局设置可见GPU编号操作
2020/06/30 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
python 实现IP子网计算
2021/02/18 Python
新闻学毕业生自荐信
2013/11/15 职场文书
电子商务应届生求职信
2013/11/16 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
旅游市场营销方案
2014/03/09 职场文书
无房证明范本
2014/09/17 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年派出所工作总结
2015/04/24 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle