django.session-middleware
2015-10-29 11:03
288 查看
摘要 Http是无连接的,所以为了保持状态,会有cookie和session的研究。在django中是通过middleware的方法,实现的。
下面是django使用session的例子,参考djangoBook:
?
然后在Member模型中,查找是否匹配。若匹配,则对request.session看作字典赋值,就会建立起session。
下图是django session的处理流程:
![](http://static.oschina.net/uploads/space/2014/1226/154232_ceQn_569730.jpg)
我们主要看SessionMiddleware的实现:
?
下面是处理客户端请求:
?
取出cookie中的值,然后根据session_key获取相应的session_data值。
SessionSrore类是一个包装成字典的类,负责session_data的存储和修改。
在看看如何在response更新session的:
?
如果session被清除了,那么客户端的cookie也应该要清除。通过response.delete_cookie( )方法清除。
如果session被修改,并且没有500error, 就会跟新客户端的cookie,通过response.set_cookie( )方法
相关文章推荐
- django-admin sites
- django.core-validators
- django.forms.widget-ChoiceFieldRenderer
- django.forms.widget-ChoiceInput
- Hello,Algorithm!(你好,算法!)
- django.forms-Widget和Media间的联系
- dajngo.forms.widget-Media
- django signal 拾遗
- Proof for Floyd-Warshall's Shortest Path Derivation Algorithm Also Demonstrates the Hierarchical Path Construction Process
- django.relatedField-关联域
- django.contrib.auth.backend-后台
- google-io-2014
- django.contirb.auth-认证
- google guava
- 1057 - Collecting Gold (状态压缩DP)
- Golang学习笔记 - 【杂项】格式化时间成datetime
- Light OJ 1051 - Good or Bad
- 不疯魔,不成活,Rackspace为什么对管理云如此狂热
- kali——google安装
- django在admin页面展示表的记录的值