浅析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中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python合并多个装饰器小技巧
Apr 28 Python
编写Python脚本抓取网络小说来制作自己的阅读器
Aug 20 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
Django实现发送邮件找回密码功能
Aug 12 Python
python实现简单的购物程序代码实例
Mar 03 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
python实现测试工具(二)——简单的ui测试工具
Oct 19 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中文汉字验证码
2007/04/08 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
php单例模式实现方法分析
2015/03/14 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
jQuery CSS()方法改变现有的CSS样式表
2014/09/09 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
canvas绘制环形进度条
2017/02/23 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
node内置调试方法总结
2018/02/22 Javascript
vue移动端实现下拉刷新
2018/04/22 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
python实现大转盘抽奖效果
2019/01/22 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
opencv实现简单人脸识别
2021/02/19 Python
Python图片的横坐标汉字实例
2019/12/04 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
Django实现celery定时任务过程解析
2020/04/21 Python
Python多分支if语句的使用
2020/09/03 Python
python在协程中增加任务实例操作
2021/02/28 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
播音主持专业个人自我评价
2014/01/09 职场文书
教学器材管理制度
2014/01/26 职场文书
模具数控专业自荐信
2014/01/27 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
网络舆情信息简报
2015/07/21 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书