(一)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. windows共享文件的方法

    众所周知,一个宿舍,一个公司处在一个局域网络中,在不能使用外网通信情况下,此时,我们忘带U盘或者硬盘,同学或同事之间需要拷贝资料或者数据,是不是就不能实现了呢?答案是否定的.微软为了解决这种不必要的麻 ...

  2. ssd算法论文理解

    这篇博客主要是讲下我在阅读ssd论文时对论文的理解,并且自行使用pytorch实现了下论文的内容,并测试可以用. 开篇放下论文地址https://arxiv.org/abs/1512.02325,可以 ...

  3. select 自定义样式插件 selectize.js

    [特别推荐]几款极好的 JavaScript 下拉列表插件   表单元素让人爱恨交加.作为网页最重要的组成部分,表单几乎无处不在,从简单的邮件订阅.登陆注册到复杂的需要多页填写的信息提交功能,表单都让 ...

  4. JobTracker作业调度分析

    转自:http://blog.csdn.net/Androidlushangderen/article/details/41408517 JobTracker的作业调度给我感觉就是比较宏观意义上的操作 ...

  5. Python_uuid 学习总结

    1. 背景知识: UUID: 通用唯一标识符 ( Universally Unique Identifier ), 对于所有的UUID它可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, ...

  6. <!>贴图/音乐

    <img src=图片位址>贴图 <img src=图片位址 width=’180’>设定图片宽度 <img src=图片位址 height=’30’>设定图片高度 ...

  7. RequireJS禁止缓存

    通过配置文件可以禁止加载缓存的JS文件, 这个在开发过程中非常有用具体做法如下 require.config({ paths: { "E":"/Scripts/MyMod ...

  8. node中的require和exports

    http://cnodejs.org/topic/4f16442ccae1f4aa270010e9

  9. 【洛谷】P1040 加分二叉树

    [洛谷]P1040 加分二叉树 题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数 ...

  10. 简易新闻网站NewsWeb-网页抓取

    本文转载自姚虎才子 今天做项目时用到java抓取网页内容,本以为很简单的一件事但是还是让我蛋疼了一会,网上资料一大堆但是都是通过url抓取网页内容,但是我要的是读取本地的html页面内容的方法,网上找 ...