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