问题标签 [flask-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 flask_restful 和 flask_caching 循环导入
我在我的项目中使用 flask_restful 已经有一段时间了,因为我喜欢将我的资源分成不同的文件以进行基本组织。现在我想添加flask_caching,我遇到了一个(简单的?)循环导入问题
我的项目结构是这样的
my_resources.py 的 Endpoints 添加到 flask_api.py 中,我也在其中创建了 flask_cache 缓存对象,如下:
然后我(试图)将缓存导入 my_resource.py - 我正在使用 @cache 装饰器
但这会导致可怕的循环导入问题。我可以将我所有的资源导入夹cache = Cache(...)
在行下方,上方api.add_resource()
。然而,这感觉就像是一种 hacky 代码的味道,并且是一个非常非常多肉的三明治。我宁愿把它们都放在文件的顶部。
解决此问题的正确方法是什么?(希望不会对大部分代码库进行大修)
tl;dr:flask_api 创建缓存并导入资源 -> 资源无法从 flask_api 导入缓存
python - 在请求期间删除 Flask-Caching 中的 redis 缓存
将 redis 与 Flask_caching 结合使用。当数据发生变化时,应用程序用于cache.clear()
清除 redis 键,这很有效。但是,当用户请求页面以获取不在数据库中的记录时, redis 会填满键。我想保持我的 TTL 至少一周或更长时间。因此应用程序需要删除无效的密钥,因为它们会随着时间的推移填满 redis。我看了看cache.delete()
,redis.expire()
但cache.set()
在请求期间它们都不起作用。似乎redis条目是在请求之后才创建的,所以我无法更改TTL或删除它。
我决定这个解决方案。
使用这种方法,对无效产品的请求存储在 redis 范围键<prefix>INVALID
中。每次发出另一个请求时,对于无效产品,应用程序都会从先前失败的请求中删除项目。我感觉有更好的方法。在我看来,大多数应用程序都会有这个问题。有什么建议么?
flask - 烧瓶缓存给了我'AttributeError:'Cache'对象没有属性'app''
我正在使用初始化缓存的应用程序工厂模式
我的缓存.py
当我在任何文件 xyz.caching 导入缓存中导入它时,它工作得很好。但是,在我的应用程序中,我有一个入口点脚本 run.py
运行.py
运行 python run.py 后,出现以下错误
'AttributeError: 'Cache' 对象没有属性 'app''
请。指导我这有什么问题,为什么我会收到这个错误以及解决这个问题的方法是什么?
python-2.7 - AttributeError:“检查模块”对象没有 python 2.7 的属性“签名”
在我的应用程序中,直到现在我一直在使用flask-caching 1.0
,但现在我必须升级它以version 1.8
使用新引入的更改,但是在 python 2.7 中它给出属性错误AttributeError: 'module' object has no attribute 'signature'
,我可以看到在 python 2.7 版本inspect
模块中没有可用的属性签名。
堆栈跟踪
任何解决问题的建议。
python - “非线程安全”是什么意思?在 Flask 应用程序中使用 SimpleCache(python 字典缓存)
我正在考虑使用 SimpleCache 将 Python 数据帧存储在 DASH 应用程序中。显然它只是使用 Python 字典。是否可以从 SimpleCache 中获取部分写入的数据帧?这是我最大的担忧。
由于线程,我还会遇到哪些其他问题?
python-3.x - 如何缓存简单的 Flask Restful API
我正在开发我的第一个 Flask Restful API,我正在尝试将它缓存一周,以便它只在周日发送一个更新请求。我计划在周日将其上传到 Heroku,以便我设置的超时 (604800) 同步到周日。我能够创建显示 JSON 的页面,但我正在寻找一些关于缓存位的建议,因为我觉得我没有正确执行它并且我不确定如何在本地检查它以查看它是否甚至在将其上传到 Heroku 之前也可以使用。
python - 如何使用 Flask 缓存变量?
我正在使用 Flask 构建一个 Web 表单,并希望用户能够输入多个条目,并让他们有机会在将数据发送到数据库之前使用撤消按钮后悔输入。我正在尝试使用Flask-Caching但未能正确设置它。
我遵循The Flask Mega-Tutorial来设置 Flask(这是我的第一个 Flask 应用程序)。
我想知道我需要如何配置 Flask 应用程序才能基本上能够执行以下操作:
在其中一个页面中(带有@app.route 装饰器的函数)?
在应用程序中。init .py 我有:
在 routes.py 我有:
当我尝试调用缓存时,我使用下面的代码。
我在尝试使用表单时得到的是以下错误:
我发现的几乎所有教程都只是在同一个模块中包含了应用程序声明和所有路由。但是当我在另一个模块中有路由时如何访问缓存?
python - 内部服务器错误的缓存.memoize & response_filter
我正在使用 flask_caching 来缓存我的烧瓶 API 的响应。我在这样的路线上使用装饰器
这将在一分钟内返回相同的随机数。但是,如果随机函数(阅读:“路由内的任何功能”)中断,并且路由返回 500 内部服务器错误怎么办?据我所知,flask_caching 将对此进行缓存,并在一分钟内为所有进一步的调用返回错误响应,这不是我想要的。
我读到了这个并找到了 response_filter 参数,它可以很容易地添加到装饰器中,似乎是专门为了防止这种情况发生(“用于防止缓存代码 500 响应。”,来自文档:
但是,我找不到此用例的示例。它说“如果可调用返回 False,则不会缓存内容。” - 我如何实现这个可调用来检查状态码是否为 500?任何链接或想法表示赞赏
python - 如何在 TIMEOUT 间隔后自动清除 Flask-Caching 的缓存?
该类Cache
提供了一种在使用cache.cache(timeout=TIMEOUT)
. 但是,它不会在超时间隔后自动删除缓存。清除缓存的唯一方法是调用cache.clear()
which 清除整个缓存,而不是仅清除要清除的函数的缓存。
是否可以自动清除所有已超时的缓存?还有其他图书馆这样做吗?
python - 用于大型数据集的 Flask 文件系统缓存
我有一个 Dash 应用程序,它接收多个 CSV 文件,并创建一个用于分析和可视化的组合数据框。通常,对于大小为 600-650 MB 的数据集,此计算大约需要 30-35 秒。我使用 Flask Filesystem 缓存来存储这个数据帧一次,并且每次我请求数据时,它都来自 Cache。
我在这里使用了 Dash 示例中的代码
我在这里有两个问题:
似乎由于缓存位于文件系统中,因此第一次尝试获取 Dataframe 需要两倍的时间(近 70 秒),然后它很快就来自后续请求。我可以使用任何其他缓存类型来避免这种开销吗?
我尝试通过设置
CACHE_THRESHOLD
(例如,我将其设置为 1)自动清除我的缓存,但它不起作用,我看到目录中添加了文件。
示例代码:
有人可以帮我弄这个吗?谢谢。