session.py插件

# coding:utf8
# __author: Administrator
# date: //
# /usr/bin/env python
import config
import hashlib
import time class BaseSession:
@classmethod
def get_session_handler(cls,handler):
if config.SESSION_TYPE == "Memery":
obj = MemerySession(handler)
return obj class MemerySession:
container = {}
prex_str="py_session" def __init__(self,handler):
self.handler = handler
client_random_str = handler.get_cookie(MemerySession.prex_str,None)
if client_random_str and client_random_str in MemerySession.container:
self.random_str=client_random_str
else:
self.random_str = self.__genarate_random_str()
MemerySession.container[self.random_str]={}
expires_time = time.time() + config.SESSION_EXPIRE
handler.set_cookie(MemerySession.prex_str,self.random_str,expires=expires_time) def __genarate_random_str(self):
obj = hashlib.md5()
obj.update(bytes(str(time.time()),encoding="utf8"))
random_str=obj.hexdigest()
return random_str def __setitem__(self, key, value):
MemerySession.container[self.random_str][key]=value def __getitem__(self, key):
ret = MemerySession.container[self.random_str].get(key, None)
return ret class RedisSession:
pass class FileSession:
pass class MysqlSession:
pass

在公共控制类中引入

import tornado.web
from backend.session.session import BaseSession class BaseRequestHandler(tornado.web.RequestHandler):
def initialize(self):
self.session = BaseSession.get_session_handler(self)

在控制类中使用

class LoginHandler(BaseRequestHandler):
def get(self):
pass def post(self):
#验证成功,缓存信息
self.session['username'] = ret.username
self.session['email'] = ret.email

最新文章

  1. mysql交互式连接&非交互式连接
  2. 剑指Offer面试题:20.栈的压入、弹出序列
  3. poj 1611(并查集)
  4. HDU 5795 A Simple Nim(简单Nim)
  5. Android Fragment间对象传递
  6. SQL 执行顺序
  7. javascript grunt安装和使用
  8. GCD基本使用
  9. Photoshop图象切片保存为网页HTML(DIV+CSS布局)的方法
  10. SAX,DOM,JAXP,JDOM,DOM4J比较
  11. 关于 parseInt 的一道有意思的面试题
  12. 利用python web框架django实现py-faster-rcnn demo实例
  13. .Net Reactor 单个dll或exe文件的保护
  14. Redis集群master选举时长测试
  15. P1272 重建道路
  16. TZOJ 1840 Jack Straws(线段相交+并查集)
  17. .NET编译过程
  18. 开源自己实现一个.net rpc框架 - Machete.Rpc
  19. 【转】Latex编译报错后中断编译并改正,然后重复出现不明原因报错的解决方法
  20. EXCEPTION-TOMCAT

热门文章

  1. Spring IOP 面向切面编程
  2. FreeMarker example all in one
  3. 使用 idHTTP 获取 UTF-8 编码的中文网页
  4. VM虚拟机—JVM内存
  5. [工作相关] GS产品使用LInux下Oracle数据库以及ASM存储时的数据文件路径写法.
  6. Linux基础学习(9)--文件系统管理
  7. Essential Phone PH1官方刷机方法
  8. String在内存中如何存储(Java)
  9. lambda 分类抽取N条
  10. LightOJ 1030 【概率DP求期望】