浅析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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
pymongo给mongodb创建索引的简单实现方法
May 06 Python
python开发之函数定义实例分析
Nov 12 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
python2 与python3的print区别小结
Jan 16 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
python创建子类的方法分析
Nov 28 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
在 Python 中使用 MQTT的方法
Aug 18 Python
python中的时区问题
Jan 14 Python
详解非极大值抑制算法之Python实现
Jun 28 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
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
php xml实例 留言本
2009/03/20 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
php时间函数用法分析
2016/05/28 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
自写简单JS判断是否已经弹出页面
2010/10/20 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
pytorch的batch normalize使用详解
2020/01/15 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
10个示例带你掌握python中的元组
2020/11/23 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
《从现在开始》教学反思
2014/04/15 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
李白故里导游词
2015/02/12 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书