cache 模块

此文件是Web2py Web框架的一部分
版权所有:Massimo di Pierro<mdipierro@cs.depaul.edu>

基本缓存类和方法

  • 缓存-与其他对象交互的通用缓存对象

  • cacheinRAM-在RAM中提供缓存

  • cacheondisk-在磁盘上提供缓存

memcache也可以通过不同的模块来使用(请参见gluon.contrib.memcache)

当web2py在google app引擎上运行时,缓存将由gae memcache提供(请参见gloon.contrib.gae_memcache)

class gluon.cache.Cache(request)[源代码]

基类:object

设置通用缓存,创建cacheinram和cacheondisk的实例。如果是GAE,将使用glion.contrib.gae_memcache。

  • self.ram是cacheinram的一个实例

  • self.disk是cacheondisk的一个实例

action(time_expire=300, cache_model=None, prefix=None, session=False, vars=True, lang=True, user_agent=False, public=True, valid_statuses=None, quick=None)[源代码]

更适合缓存操作

警告

实验!

目前只有http 1.1兼容参考:http://code.google.com/p/doctype-mirror/wiki/articlehttpcaching

参数
  • time_expire (int) -- 与@缓存相同

  • cache_model (str) -- 与@缓存相同

  • prefix (str) -- 向计算键添加前缀

  • session (bool) -- 将response.sessionu id添加到密钥

  • vars (bool) -- 添加request.env.query_字符串

  • lang (bool) -- 添加T.接受的语言

  • user_agent (bool or dict) -- 如果是真的,则添加是移动的,并且是关键的平板电脑。传递dict以使用所有需要的值(使用str(.items())(例如,user_agent=request.user_agent())。仅在会话不为真时使用

  • public (bool) -- 如果为false,则强制缓存控件为“private”

  • valid_statuses -- 默认情况下,只缓存以1、2、3开头的状态代码。传递打开缓存的显式状态列表

  • quick -- session,vars,lang,user agent,public:用缩写快速覆盖,例如“svlp”或“vlp”或“vlp”

autokey = ':%(name)s:%(args)s:%(vars)s'
static with_prefix(cache_model, prefix)[源代码]

允许将cache.ram替换为cache。使用u prefix(cache.ram,'prefix')将为所有使用的缓存键添加前缀。

gluon.cache.lazy_cache(key=None, time_expire=None, cache_model='ram')[源代码]

可用于缓存任何函数,包括模块中的函数,只要缓存的函数仅在Web2py请求中调用

如果没有提供键,则从函数名生成一个键 time_expire 默认为无(无缓存过期)

如果cache_model为“ram”,则该模型为current.cache.ram等。