读写Session

Session是保存在服务端的字典

Session与Cookie有些类似,都是通过字典管理key-value对,只不过Cookie是保存在客户端的字典,而Session是保存在服务端的字典。Session可以在服务端使用多种存在方式,

默认一般存储在内存中,一旦web服务重启,所有保存在内存中的Session就会消失。为了让Session即使在web服务器重启后仍然能够存在,也可以将Session保存到文件或者数据中。

不管如何保存Session,操作都是一样的。

Session的另外一个重要作用就是跟踪客户端。也就是说,当一个客户端浏览器访问web服务器后,关闭浏览器,再次启动浏览器,再次访问web服务。这时web服务器就会知道这个浏览器

已经访问了两次web服务。这就是通过Session跟踪的。每一个客户端访问web服务器时都会创建一个单独的Session,同时为这个Session生成一个ID,这里就叫它Session-ID。

这个Session-ID会利用Cookie的方式保存在客户端,如果客户端再次访问web服务器时,这个ession-ID也会跟着HTTP请求发送给web服务,web服务会通过这个Session-ID寻找这个客户端

的Session。也就是说如果客户端不支持Cookie,那么Session是无法跟踪客户端的。当然可以通过其他方式保存这个Session-ID,这里不做讨论。

读写session都需要使用路由函数的request的参数,

本例通过session属性读写两对key-value,并设置了Session的有效期

1、首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html

2、在工程的Firstdjango目录中建立一个session.py脚本文件,然后在session.py文件中添加如下内容:

from django.http import HttpResponse
from django.http import HttpResponseRedirect def writeSession(request):
# 设置名为name的Session
request.session['name']='Bill'
# 设置名为age的Session
request.session['age']=30
return HttpResponse('writeSession')
def readSession(request):
result=''
# 读取名为name的Session,如果没有name,返回None
name=request.session.get('name')
# 读取名为age的Session,如果没有age,返回None
age=request.session.get('age')
if name:
result='<h2>name:<font color="red">'+name+'</font></h2>'
if age:
result+='<h2>age:<font color="blue">'+str(age)+'</font></h2>'
return HttpResponse(result,content_type="text/html") 3、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容: from django.conf.urls import url
from .import session
urlpatterns=[
#下面代码是本例添加的路由方法与正则表达式的映射
url(r'^writeSession$',session.writeSession),
url(r'^readSession$',session.readSession),
] 4、配置migrate 进入项目manage所在的目录中执行如下命令,否则会报错:no such table: django_session 进入cmd 输入盘符比如:E: 切换目录 cd E:\progect\Firstdjango python manage.py migrate 5、启动django 6、浏览器访问: http://127.0.0.1:8000/writeSession
writeSession http://127.0.0.1:8000/readSession
name:Bill
age:30 如果想精确控制session的有效期,需要在setting.py脚本文件中设置SESSION_COOKIE_AGE变量,如下面代码将session的有效期设置为20s SESSION_COOKIE_AGE=20 如果使用了上面的设置,session在20s后将过期,过期的session将无法读取。 7、上面建立session.py脚本文件创建位置如下图所示:


读写Session的更多相关文章

  1. 在一般处理程序里面读写session

    1.引用命名空间 using System.Web.SessionState; 2.继承IRequiresSessionState接口 3.利用httpcontext类读写即可 context.ses ...

  2. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  3. Cookie/Session机制详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  4. 【转】Cookie和Session区别和联系详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  5. Session 失效原因

    转载http://blog.csdn.net/LLorJJ999/article/details/4107464 昨天去GTSC面试,有面试官问我关于Session丢失之后怎么查的问题,说老实话,开发 ...

  6. 理解Cookie和Session机制(转)

    目录[-] Cookie机制 什么是Cookie 记录用户访问次数 Cookie的不可跨域名性 Unicode编码:保存中文 BASE64编码:保存二进制图片 设置Cookie的所有属性 Cookie ...

  7. php中session锁--如何防止阻塞请求(译)

    现代浏览器限制到一个host并发连接的数量一般为4或6.这意味着,如果您的web页面加载几十个来自同一个host的assert file(js.图像.css)时,由于并发数的限制,会产生排队.同样甚至 ...

  8. ASP.NET 状态服务 及 session丢失问题解决方案总结

    ASP.NET2.0系统时,在程序中做删除或创建文件操作时,出现session丢失问题.采用了如下方法:1.asp.net Session的实现:asp.net的Session是基于HttpModul ...

  9. session的工作原理

    asp中Session的工作原理:asp的Session是具有进程依赖性的.ASP Session状态存于IIS的进程中,也就是inetinfo.exe这个程序.所以当inetinfo.exe进程崩溃 ...

随机推荐

  1. 【NOIP/CSP2019】D2T1 Emiya 家今天的饭

    这个D2T1有点难度啊 原题: 花了我一下午的时间,作为D2T1的确反常 条件很奇怪,感觉不太直观,于是看数据范围先写了个暴力 写暴力的时候我就注意到了之前没有仔细想过的点,烹饪方式必须不同 虽然a很 ...

  2. [ 转载 ] vue.js面试题一

    转载自:https://www.cnblogs.com/aimeeblogs/p/9501490.html 如有侵权 联系删除 Vue.js面试题整理 一.什么是MVVM? MVVM是Model-Vi ...

  3. Checklist的补充规则

    常见问题: 1.什么时候该补充Checklist? 2.Checklist应该写哪些用例? 3.自己写的模块是否自己执行? 4.什么时候执行Checklist? 5.执行完Checklist大概需要花 ...

  4. v-model原理解析

    vue中v-model可以实现数据的双向绑定,但是为什么这个指令就可以实现数据的双向绑定呢? 其实v-model是vue的一个语法糖.即利用v-model绑定数据后,既绑定了数据,又添加了一个inpu ...

  5. Codeforces Round #543 (Div. 1, based on Technocup 2019 Final Round) 题解

    题面戳这里 A. Diana and Liana 首先如果s>ks>ks>k一定无解,特判一下.那么我们考虑找恰好满足满足题目中的要求的区间[l,r][l,r][l,r],那么需要要 ...

  6. .net常用属性

    1.   在ASP.NET中专用属性:               获取服务器电脑名:Page.Server.ManchineName               获取用户信息:Page.User   ...

  7. 使用std::function改善模板的低效性

    泛型编程中,模板会根据传入类型的不同,生成多种实例,相对低效. 模板编程: #include <iostream> using namespace std; //未使用函数包装器 temp ...

  8. Codevs 1743 反转卡片(splay)

    1743 反转卡片 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description [dzy493941464|yywyzdzr原创] 小A将N ...

  9. 洛谷 P2251 质量检测(st表)

    P2251 质量检测 题目提供者ws_ly 标签 难度 普及/提高- 题目描述 为了检测生产流水线上总共N件产品的质量,我们首先给每一件产品打一个分数A表示其品质,然后统计前M件产品中质量最差的产品的 ...

  10. 我终于搞清楚了和String有关的那点事儿。

    String,是Java中除了基本数据类型以外,最为重要的一个类型了.很多人会认为他比较简单.但是和String有关的面试题有很多,下面我随便找两道面试题,看看你能不能都答对: Q1:String s ...