更新日志¶
版本 2.1.0¶
发布于 2024-10-08
修复了
flask_caching.utils.make_template_fragment_key
中的类型签名。 :pr:`430`为 make_cache_key 添加了文档和示例
支持 Flask 3
版本 2.0.2¶
发布于 2023-01-12
修复了由于最新发布的 cachelib 导致的 boto3 依赖问题
将
flask_caching.backends.RedisCluster
依赖从 redis-py-cluster 迁移到 redis-py错误修复:使装饰视图函数的
make_cache_key
属性可写。 :pr:`431`, :issue:`97`
版本 2.0.1¶
发布于 2022-07-30
放宽依赖版本限制以允许 Flask 2.x.x
版本 2.0.0¶
发布于 2022-06-26
修复了
flask_caching.backends.RedisSentinelCache.get_many
会查询错误主机和端口组合的错误。 :pr:`372`移除了
flask_caching.backends.FileSystemCache
方法覆盖。它现在 100% 共享cachelib.FileSystemCache
API 并且完全兼容。依赖于旧版本中方法覆盖实现细节的功能可能不再有效。 :pr:`369`添加了对底层缓存客户端的
has
方法的代理。 :pr:`356`flask_caching.backends.FileSystemCache
现在以通用(非框架化)方式存储时间戳,遵循最新版本的cachelib.FileSystemCache
。此更改还将开销从 17 字节(通过之前使用 pickle 的方法)减少到 4 字节(使用 python 的struct
)。但是,由于旧的时间戳使用不同的策略序列化,因此这将破坏兼容性。
版本 1.11.1¶
发布于 2022-05-27
将 cachelib 添加到 setup.py: :pr:`354`
版本 1.11.0¶
发布于 2022-05-27
版本 1.10.1¶
发布于 2021-03-17
版本 1.10.0¶
发布于 2021-03-04
重要: 加载缓存后端的方式已重构。现在可以传递缓存后端类的完整路径,而不是传递初始化函数的名称。例如:
CACHE_TYPE="flask_caching.backends.SimpleCache"
。在下一个主要版本 (2.0) 中,这将是唯一支持的方式。UWSGICache 不再是官方支持的,并已移至用户贡献的后端。
从 Travis-CI 切换到 GitHub Actions
修复了 RedisCache 中没有超时的 add()。 :pr:`218`
修复了 FileSystemCache 计算文件数量时的错误。 :pr:`210`
已添加类型注释。 :pr:`198`
为 SimpleCache 和 FileSystemCache 添加了一些基本日志记录,以提高可观察性。 :pr:`203`
在 memoize 中添加了忽略 args 的选项 :pr:`201`
停止将 wheels 标记为与 Python 2 兼容。 :pr:`196`
修复了
default_timeout
未正确传递给其父构造函数的问题。 :pr:`187`修复了函数
_memoize_make_cache_key
中未传递kwargs
的问题。 :pr:`184`添加了 Redis 集群模式缓存后端。 :pr:`173`
不要让 PIP 在不支持的 Python 版本上安装此软件包。 :pr:`179`
通过检查 uWSGI 是否启用了 'cache2' 选项来修复 uWSGI 初始化。 :pr:`176`
文档更新和修复。
版本 1.9.0¶
发布于 2020-06-02
添加了一个选项,用于在生成缓存键时包含函数的源代码。 :pr:`156`
添加了一个功能,允许完全控制缓存键的生成方式。例如,现在可以实现一个基于 POST 请求生成缓存键的函数。 :pr:`159`
通过将缓存后端名称从
simple
重命名为simplecache
,null
重命名为nullcache
,以及filesystem
重命名为filesystemcache
,修复了缓存后端命名冲突。显式地将
default_timeout
从RedisSentinelCache
传递到RedisCache
。由于 Windows 在 dst 文件已存在时会引发
OSError
,因此使用os.replace
而不是 werkzeug 的rename
。文档更新和修复。
版本 1.8.0¶
发布于 2019-11-24
重大更改: 移除了对 Python 2 的支持。从现在开始支持 Python 3.5 及更高版本。
添加了选项以指定
None
是否为缓存值。请参阅 :pr:`140` 和 #141允许使用
__caching_id__
而不是__repr__
作为对象缓存键。 :pr:`123`RedisCache 后端现在支持通过可调用对象生成 key_prefix。 :pr:`109`
如果
CACHE_TYPE
设置为filesystem
但未设置CACHE_DIR
,则发出警告。修复了 Google App Engine Memcache 后端。有关更多详细信息,请参阅问题 #120。
各种文档更新和修复。
版本 1.7.2¶
发布于 2019-05-28
这是支持 Python 2 的最后一个版本!
如果缓存的返回值是 None,则不运行缓存/记忆化函数。 :pr:`108`
版本 1.7.1¶
发布于 2019-04-16
通过使用 varkw 修复了检查 Python 3 函数的问题。 :pr:`101`
移除了 PyPI 包中的残留文件 (
uwsgi.py
)。有关更多详细信息,请参阅问题 #102。
版本 1.7.0¶
发布于 2019-03-29
添加了一个名为 'response_filter' 的功能,该功能使人们能够仅根据响应代码缓存视图。 :pr:`99`
DeprecationWarning 已转换为 TypeError。
版本 1.6.0¶
发布于 2019-03-06
delete_many
函数现在能够忽略任何错误并继续删除缓存。但是,为了保持向后兼容性,默认模式是中止删除过程。为了使用新的删除模式,必须将配置设置CACHE_IGNORE_ERRORS
翻转为True
。这过去并且现在仍然只与 filesystem 和 simple 缓存后端相关。 :pr:`94`重新添加了
gaememcached
CACHE_TYPE 以提高向后兼容性。文档改进
版本 1.5.0¶
发布于 2019-02-23
版本 1.4.0¶
发布于 2018-04-16
版本 1.3.3¶
发布于 2017-06-25
添加了对多个查询参数的支持,并使用 md5 进行一致的哈希处理。 :pr:`43`
版本 1.3.2¶
发布于 2017-06-25
修复了使用 Python 3 时的
spreadsaslmemcached
后端。修复了在使用 Python 3.6 或更高版本记忆化函数时的 kwargs 顺序。请参阅 #27
版本 1.3.1¶
发布于 2017-06-20
避免 Werkzeug<0.12 环境的破坏,因为 uwsgi 后端依赖于 Werkzeug >=0.12。请参阅 #38
版本 1.3.0¶
发布于 2017-06-17
添加了 uWSGI 缓存后端(需要 Werkzeug >= 0.12)
在 cached 装饰器中提供了一个关键字 query_string,以便为不同的查询字符串请求创建相同的缓存键,只要它们具有相同的键/值(顺序无关紧要)。 :pr:`35`
使用 pytest 作为测试套件和测试运行器。此外,测试已拆分为多个文件,而不是只有一个大文件。
版本 1.2.0¶
发布于 2017-02-02
允许使用 kwargs 的函数被正确地记忆化。请参阅 #18
版本 1.1.1¶
发布于 2016-12-09
修复了 PyPI 包分发。请参阅 #15
版本 1.1.0¶
发布于 2016-12-09
修复了 'redis' 后端导入机制。请参阅 #14
将后端设为一个模块,以更好地控制要公开的缓存后端,并将我们的自定义客户端移至后端模块内的自有模块中。另请参阅 #14(以及部分自有更改)。
一些文档和测试更改。请参阅 #8 和 #12
版本 1.0.1¶
发布于 2016-08-30
像 add、set 等缓存包装器现在返回包装结果,正如人们所期望的那样。请参阅 #5
版本 1.0.0¶
发布于 2016-07-05
更改了导入 Flask-Cache 的方式。不再使用已弃用的方法导入 Flask 扩展(通过
flask.ext.cache
),而是使用扩展的名称flask_cache
。有关此事的更多信息,请查看 Flask 的文档。这也修复了 Flask 中的弃用警告。大量的 PEP8 和文档修复。
将此分支重命名为 Flask-Caching (
flask_caching
),因为它现在可以在 PyPI 上下载。
除了上述修复之外,以下拉取请求已合并到 Flask-Cache 的此分支中
#90 更新文档:路由装饰器在缓存之前
#95 将 memoize 参数传递到 unless() 中。
#109 包装函数被调用两次
#117 将设置 app 属性移至 _set_cache 方法
#121 修复 delete_memoized 的文档
#122 为 werkzeug get_dict 添加代理
#123 ‘cache’ 和 ‘memoize’ 装饰器的 “forced_update” 选项
#124 修复处理 utf8 键参数 (cherry-picked)
#125 修复 redis 单元测试失败的问题
#127 改进了在视图上使用 @cached 的文档
#128 delete_memoized 的文档
#129 尝试使用 signature 或 getfullargspec 替换 inspect.getargspec (如果可能)
make_cache_key() 返回不正确的键 (cherry-picked)
版本 0.13¶
发布于 2014-04-21
移植到 Python >= 3.3(2.x 需要 Python 2.6/2.7)。
修复了使用大于默认超时的每个记忆化超时时间的错误
为每个实例的记忆化添加了更好的支持。
各种错误修复
版本 0.12¶
发布于 2013-04-29
更改 jinja2 缓存模板以使用稳定的可预测键。以前,缓存标记的键包括模板的行号,这使得在应用程序外部很难预测键是什么。
添加了配置变量 CACHE_NO_NULL_WARNING,以在使用 'null' 缓存作为测试一部分时消除警告消息。
添加了传递以清除整个缓存后端。
版本 0.11.1¶
发布于 2013-04-7
修复了在实例方法上使用 memoize 的错误。之前的键是 id(self),新键是 repr(self)
版本 0.11¶
发布于 2013-03-23
如果缓存后端引发异常,则在生产环境中优雅地失败。
对 redis DB 编号的支持
Jinja2 模板标签缓存现在将所有参数连接在一起到一个键中,而不是将每个参数视为单独的键名。
添加了删除 memcache 版本哈希函数
再次支持单个应用程序上的多个缓存对象。
添加了 SpreadSASLMemcached,如果值大于 memcached 阈值(默认为 1MB),则会将该值拆分到多个键中。
添加了使用 URL 连接到 redis 的支持。
版本 0.10.1¶
发布于 2013-01-13
在使用 'null' 缓存类型时添加了警告消息
将导入更改为相对导入而不是绝对导入,以实现 AppEngine 兼容性
版本 0.10.0¶
发布于 2013-01-05
添加了 saslmemcached 后端以支持 SASL 身份验证后面的 Memcached。
修复了当 args 数量 != kwargs 数量时 memoize 的错误
版本 0.9.2¶
发布于 2012-11-18
默认 kwargs 的错误修复
版本 0.9.1¶
发布于 2012-11-16
修复了在使用默认 kwargs 的函数上 memoized 损坏的问题
版本 0.9.0¶
发布于 2012-10-14
修复了在方法上 memoization 的工作方式。
版本 0.8.0¶
发布于 2012-09-30
迁移到 flask 扩展的新命名约定 flask_cache 而不是 flaskext.cache
移除了 setup.py 文件中不必要的依赖项。
文档更新
版本 0.7.0¶
发布于 2012-08-25
允许多个缓存对象使用不同的配置值进行实例化。
版本 0.6.0¶
发布于 2012-08-12
对于使用相同后备存储的多个应用程序,记忆化现在更安全。
如果 Flask 应用程序设置为 testing=True,则移除了显式设置 NullCache 的操作
交换了 key_prefix 的条件顺序
版本 0.5.0¶
发布于 2012-02-03
删除记忆化函数现在可以在生产环境中正常运行,其中应用程序的多个实例正在运行。
get_memoized_names 和 get_memoized_keys 已被删除。
为 memoize 添加了
make_name
,make_name 是一个可选的可调用对象,可以传递给 memoize 以修改生成的 cache_key。为 memoize 添加了
unless
,这与cached
中的 unless 参数相同记忆化现在将所有 kwargs 转换为位置参数,这是为了当以多种方式调用函数时,它将评估为相同的 cache_key
版本 0.4.0¶
发布于 2011-12-11
为装饰函数添加了 uncached、make_cache_key、cache_timeout 属性。
版本 0.3.4¶
发布于 2011-09-10
缓存键的 UTF-8 编码
cached 装饰器的 key_prefix 参数现在支持可调用对象。
版本 0.3.3¶
发布于 2011-06-03
对记忆化缓存使用 base64。这修复了罕见的问题,即 cache_key 是元组或大于缓存后端能够支持的大小。
添加了基于函数参数可选删除记忆化缓存的支持。
Python 2.5 兼容性,以及 string.format 的错误修复。
添加了检索记忆化函数名称或缓存键的功能。
版本 0.3.2¶
错误修复版本。修复了如果未提供 CACHE_TYPE
则会导致异常的错误。
版本 0.3.1¶
Pypi egg 修复。
版本 0.3¶
CACHE_TYPE 已更改。现在是 [‘null’, ‘simple’, ‘memcached’, ‘gaememcached’, ‘filesystem’] 之一,或指向将实例化缓存对象的函数的导入字符串。这使 Flask-Cache 更加可扩展和可配置。
版本 0.2¶
CACHE_TYPE 现在使用 import_string。
添加了 CACHE_OPTIONS 和 CACHE_ARGS 配置值。
添加了 delete_memoized
版本 0.1¶
初始公开版本