redis_session_store.py
# -*- coding: utf-8 -*-
"""
Created on 09/11/2011
@author: Carlo Pires <carlopires@gmail.com>
"""
import tnetstring
from werkzeug.contrib.sessions import SessionStore SESSION_TIMEOUT = 60*60*24*7 # 7 weeks in seconds class RedisSessionStore(SessionStore):
"""
SessionStore that saves session to redis
"""
def __init__(self, redis, key_template='session:%s', generate_salt=None): if not generate_salt:
from users import get_config
generate_salt = get_config().users_secret SessionStore.__init__(self)
self.redis = redis
self.key_template = key_template
self.generate_salt = generate_salt def new(self):
"""Generate a new session."""
return self.session_class({}, self.generate_key(self.generate_salt), True) def get_session_key(self, sid):
if isinstance(sid, unicode):
sid = sid.encode('utf-8')
return self.key_template % sid def save(self, session):
key = self.get_session_key(session.sid)
if self.redis.set(key, tnetstring.dumps(dict(session))):
return self.redis.expire(key, SESSION_TIMEOUT) def delete(self, session):
key = self.get_session_key(session.sid)
return self.redis.delete(key) def get(self, sid):
if not self.is_valid_key(sid):
return self.new()
key = self.get_session_key(sid)
saved = self.redis.get(key)
if saved:
data = tnetstring.loads(saved)
return self.session_class(data, sid, False) def list(self):
"""
Lists all sessions in the store.
"""
session_keys = self.redis.keys(self.key_template[:-2] + '*')
return [s[len(self.key_template)-2:] for s in session_keys]
redis_session_store.py的更多相关文章
- python调用py中rar的路径问题。
1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...
- Python导入其他文件中的.py文件 即模块
import sys sys.path.append("路径") import .py文件
- import renumber.py in pymol
cp renumber.py /usr/local/lib/python2.7/dist-packages/pymol import renumber or run /path/to/renumber ...
- python gettitle.py
#!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...
- 解决 odoo.py: error: option --addons-path: The addons-path 'local-addons/' does not seem to a be a valid Addons Directory!
情况说明 odoo源文件路径-/odoo-dev/odoo/: 我的模块插件路径 ~/odoo-dev/local-addons/my-module 在my-module中创建了__init__.py ...
- caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例
caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建--redhat7.1和caffe的python接口编译 1.运行caffe图片分类器python接口 还 ...
- 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优
libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...
- MySqlNDB使用自带的ndb_setup.py安装集群
在用Mysql做集群时,使用Mysql的NDB版本更易于集群的扩展,稳定和数据的实时性. 我们可以使用Mysql自带的工具进行集群安装与管理:ndb_setup.py.位于Mysql的安装目录bin下 ...
- 将做好的py文件打包成模块,供别人安装调用
现在要将写完的3个py文件,打包. 步骤: 1.新建一个文件夹setup(名字随便取),在setup文件夹下,再新建一个文件夹financeapi. 2.将上面4个py文件拷贝至financeapi文 ...
随机推荐
- list C++实现
模仿STL中list,实现了其大部分功能.list可以高效地利用内存资源,常数时间的插入删除操作.并且,list除了erase外,不怎么存在迭代器失效的现象. #include<iostream ...
- 使用Bootstrap 3开发响应式网站实践05,使用Tab、Modal、Form展示内容,使用Popover、Tooltip展示提示信息
本篇体验用Tab插件显示内容.Html部分为: <div class="row" id="moreInfo"> <div class=&quo ...
- 【linux】centos7安装使用rz/sz命令
今天在一个新的centos上使用rz上传文件,提示找不到命令 需要在root用户下 安装命令: yum install -y lrzsz 使用rz上传文件到服务器上: rz 使用sz命令发送服务器文件 ...
- Deployment failure on Tomcat 7.x. Could not copy all resources to
今天在网上部署项目的时候出现在了问题 tomcat一直部署不上 网上查了一下 原因记下来供大家查看 [plain] <span style="font-size:18px;" ...
- 内存控制篇calloc free getpagesize malloc mmap munmap
calloc(配置内存空间) 相关函数 malloc,free,realloc,brk 表头文件 #include <stdlib.h> 定义函数 void *calloc(size_t ...
- 机器学习简史brief history of machine learning
BRIEF HISTORY OF MACHINE LEARNING My subjective ML timeline (click for larger) Since the initial sta ...
- SXH232摄像头使用示范
It occurred to me suddenly that I wanted to program the our camera sensor for PC desktop, just like ...
- Objective-C:动态绑定
// Complex.h // 03-动态绑定 // // Created by ma c on 15/8/11. // Copyright (c) 2015年. All rights reserve ...
- elimination-game
https://leetcode.com/problems/elimination-game/ // 一行代码就可以,不过原理有些复杂 // https://discuss.leetcode.com/ ...
- 11个JavaScript颜色选择器插件
几年前,很难找到一个合适的颜色选择器.正好看到很多不错的JavaScript颜色选择器插件,故而把这些编译汇总.在本文,Web设计师和开发人员 Kevin Liew 选取了11个相应插件,有些会比较复 ...