(一)django有四中session实现方式

1、数据库(database-backed sessions)
2、缓存(cached sessions)
3、文件系统(file-based sessions)
4、cookie(cookie-based sessions)
 
其中数据库方式是默认的也是默认就启用的,其实现方式实际上是通过django中间件实现的,配置在INSTALLED_APPS中的django.contrib.sessions。目前先使用数据库方式的session,其他以后继续补充,首先考虑改进为“缓存”。

(二)django session使用基础
1、存放数据到session
request.session['some_id'] = some_id
2、从session中读取存放的数据
session.get('some_id', False)
3、从session中将数据删除
del request.session['some_id']
4、让session过期
request.session.set_expiry()
5、在命令行访问sessin数据
# 生成并保存session(利用SessionStore)
from django.contrib.sessions.backends.db import SessionStore
sessionStore = SessionStore()
sessionStore["str"] = "hello"                  #  字串映射
sessionStore["dict"] = {};                     #  可以定义多级的字典结构
sessionStore["dict"]["key1"]="value1"
sessionStore["dict"]["key2"]="value2"
sessionStore.save();
print(sessionStore.session_key);
print(sessionStore.keys());
session_key = sessionStore.session_key;
# 读取保存的session
from django.contrib.sessions.models import Session
session = Session.objects.get(pk=session_key)
print(session.session_data);                 # 返回session的存储(加密过)
print(session.get_decoded());                # 返回session的数据结构(加过解码)  
print(session.expire_date);
注意:
(1)保存数据的使用使用的是SessionStore读取数据使用使用的是Session。
(2)在使用多级字典时session["dict"]["key1"] = "something" django默认不会对多级对象进行保存,需要显示的使用代码 request.session.modified = True 。
 
(三)Session的重要配置参数(在setting.py中配置)
1、SESSION_SAVE_EVERY_REQUEST 
如果设置为True,django为每次request请求都保存session的内容,默认为False。
2、SESSION_EXPIRE_AT_BROWSER_CLOSE
如果设置为True,浏览器已关闭session就过期了,默认为False。
3、SESSION_COOKIE_AGE
设置SESSION的过期时间,单位是秒,默认是两周

参考http://blog.sina.com.cn/s/blog_a73687bc0101dkmv.html

关于session的常用用法的更多相关文章

  1. Spring MVC中Session的正确用法<转>

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  2. 【转】Spring MVC中Session的正确用法之我见

    Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...

  3. centos的vi常用用法

    centos的vi常用用法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的 ...

  4. MySql与SqlServer的一些常用用法的差别

    MySql与SqlServer的一些常用用法的差别 本文为转载 本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主. 1. 标识符限定符 SqlServer [] ...

  5. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  6. 【三支火把】---一份程序看懂C程序printf()的几种常用用法

    闲来继续巩固我的学习之路,今天略微整理了一下,C程序中Printf()的一些常用用法,虽然自己以前好像会,但是不够系统,今天大致整理了一些,先贴上来看看,以后在看到其他,继续补充,希望能帮到一些像我一 ...

  7. grep参数说明及常用用法

    grep参数说明及常用用法 趁着午休的时间把自己经常使用的一些grep命令整理一下. 方便以后查看. 后续会逐步把awk/sed/find等常用的命令理一理. 增强下记忆. 也算是对得起自己了. ^^ ...

  8. ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

  9. C# Linq基本常用用法

    1.什么是Linq? Lanaguage Interated Query(语言集成查询),Linq 是集成C# 和VB这些语言中用于提供数据查询能力的一个新特性. 这里只介绍两种基本常用用法. 学习方 ...

随机推荐

  1. JSON资料整理(转载)

    目录 1.什么是json 2.json语法规则 3.json基础结构 4.json基础示例 5.JSON和XML比较 6. .NET操作JSON 原始方式 通用方式 内置方式 契约方式 通过序列化将. ...

  2. Solr学习02:搭建Solr环境

    一.安装虚拟机 Solr 必须运行在Java1.6 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可,但如果需要扩展功能或编译源码则需要下载JDK 来完成.可以通过下面的地 ...

  3. flask 中xx.init_app(app)方法

    bootstrap = Bootstrap() mail = Mail() moment = Moment() db = SQLAlchemy() def create_app(config_name ...

  4. 在grub的rescue模式修复linux引导

    今天在windows 10系统收到系统更新通知,没看清楚就手贱点了马上更新.以为只是像那些普通更新一样重启一下更新就完了,万万没想到这个是覆盖更新,也就是说这是一个全新的系统更新而不是系统补丁.在安装 ...

  5. node js 读取mysql

    1.新版node自带npm 2.下载npm不需要node命令 3.懒得配环境变量.直接把生成的npm复制到报错目录,再把mysql模块复制回来 var mysql = require('mysql') ...

  6. kaggle比赛之youtube视频分类示例

    1.训练模型:建bucket,建job,提交运行. BUCKET_NAME=gs://${USER}_yt8m_train_bucket_logisticmodel # (One Time) Crea ...

  7. 当您尝试再次安装 SQL Server 时,SQL Server 2008年安装将会失败

    症状 当您尝试在一台服务器上安装 Microsoft SQL Server 2008年时,则安装将失败.当您尝试在同一台服务器上重新安装 SQL Server 2008年的相同副本时,此安装也将失败. ...

  8. XHTML XML

    XHTML是可扩展的超文本标记语言(Extensible HyperText Markup Language). l  XHTML是w3c组织在2000年的时候为了增强HTML推出的,本来是想替代HT ...

  9. 几何画板给word绘制图形的方法

    几何画板是一款专门用来绘图的工具,它里面有很多的绘图工具和功能菜单,都是专门为画图而设计的,比如一些理科的期刊杂志论文出版的时候,里面所涉及到的图形很多都是用几何画板画出来的.下面就根据几何画板教程来 ...

  10. 边缘检测算子和小波变换提取图像边缘【matlab】

    Roberts边缘检测算子:根据一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差. 小波变换的方法比较适用于展现夹带在正常信号中的瞬间反常现象,具有方向敏感性.所以可以边缘检 ...