文档章节

Python进程缓存

yehun
 yehun
发布于 2017/03/30 17:14
字数 196
阅读 43
收藏 0

在web.py, bottle这些微型框架中, 缓存数据这块是没有的, 但是又不想安装插件, 那就只有自己实现了

下面的是类似一个全局变量, 可以把数据保存在单例对象中

 

# coding: utf-8

import time

class SimpleCache(dict):
    '''
        cache = SimpleCache.getInstance()
        cache.get('key')
        cache.set('key', 'value')
    '''
    def __new__(cls, *args):
        if not hasattr(cls, '_instance'):
            cls._instance = dict.__new__(cls)
        else:
            raise Exception('SimpleCache already initialized')
        return cls._instance

    @classmethod
    def getInstance(cls):
        if not hasattr(cls, '_instance'):
            cls._instance = dict.__new__(cls)
        return cls._instance

    def get(self, name, default=None):
        if not name: return default
        levels = name.split('.')
        data = self
        for level in levels:
            try:
                data = data[level]
            except:
                return default
        return data

    def set(self, name, value):
        levels = name.split('.')
        arr = self        
        for name in levels[:-1]:
            if not arr.has_key(name):
                arr[name] = {}
            arr = arr[name]
        arr[levels[-1]] = value

    def getset(self, name, value):
        g = self.get(name)
        if not g:
            g = value
            self.set(name, g)
        return g

 

© 著作权归作者所有

yehun
粉丝 8
博文 218
码字总数 137315
作品 0
长宁
高级程序员
私信 提问
Github上最受欢迎的Python框架Flask入门

flask最近终于发布了它的1.0版本更新,从项目开源到最近的1.0版本flask已经走过了8个年头。 运行,打开浏览器访问就可以看到页面输出了 flask的诞生于2010年的愚人节,本来它只是作者无意间写...

xjtuhit
2018/06/08
0
0
Python标准库06 子进程 (subprocess包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 谢谢Tolbkni Kao帮我纠正错误 这里的内容以Linux进程基础和Linux文本流为基础。subprocess包主要功能是...

张旭0512
2014/05/27
135
0
从0到1,Python Web开发的进击之路

本文将以个人(开发)的角度,讲述如何从零开始,编写、搭建和部署一个基于Python的Web应用程序。 从最简单的出发点来剖析,一个web应用后端要完成的工作抽象出来无非就是3点: 接收和解析请...

大数据之路
2012/08/30
481
0
Python subprocess 模块

subprocess以及常用的封装函数 当我们运行python的时候,我们都是在创建并运行一个进程。正如我们在Linux进程基础中介绍的那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序...

阿豪boy
2018/01/17
5
0
Bottle 中文文档

译者: smallfish (smallfish.xy@gmail.com) 更新日期: 2009-09-25 原文地址: http://bottle.paws.de/page/docs(需翻墙) 译文地址: http://justjavac.com/python/2014/06/26/bottle-doc-cn.......

coffeescript
2014/06/27
440
0

没有更多内容

加载失败,请刷新页面

加载更多

用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
3
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
12
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
13
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0
Django的ChoiceField和MultipleChoiceField错误提示,选择一个有效的选项

在表单验证时提示错误:选择一个有效的选项 例如有这样一个表单: class ProductForm(Form): category = fields.MultipleChoiceField( widget=widgets.SelectMultiple(), ...

编程老陆
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部