MENU

Werkzeug实现接口缓存

July 18, 2020 • Python

最近在写微信公众号客户端的中控服务器,遇到了一点问题,特此记录一下

问题描述

这个中控服务器的作用主要是程序向该接口请求时,返回一个Token,而这个token的有效性应该保持一个小时,也就是说一个小时内对这个接口请求,返回的token都应当是一样的,所以这里就需要使用到缓存了

但是在网上搜索flask 缓存的时候,却全是flask-cache的搜索结果,在测试以后,我发现flask-cache是不能正常运行的,会提示无法正常导入werkzeug。

解决方法

既然此路不通,那么有没有什么好的方法呢?

于是我搜了一下werkzeug,发现这也是一个用于缓存的库,官方文档我放这里了:flask缓存

按照官方文档的做法,我写了下面的伪码:

from flask import Flask
from werkzeug.contrib.cache import SimpleCache

@app.route('/')
def token():

    tooken = cache.get('token')
    if tooken is None:
        # 检查tooken是否缓存
        response = requests.get('https://api.weixin.qq.com/balabala/')   
        tooken = response.json().get('access_token')
        # 执行请求,获得tooken
        # print(response.json())
        cache.set('token', tooken, timeout=60 * 60 )
        # 将token存入缓存中,并设置超时时间

    return token
if __name__ == "__main__":
    app.run()

经过测试,发现token确实缓存上了

值得注意的是:
1.0版本的werkzeug已经移除了SimpleCache,所以请使用 pip install werkzeug==0.16 安装旧版本

后记

werkzeug不仅仅支持SimpleCache,还能支持MemcachedCache以及App Engine,具体操作请看官方文档

作者:NorthCity1984
出处:https://grimoire.cn/python/werkzeug.html
版权:本文《Werkzeug实现接口缓存》版权归作者所有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

Last Modified: August 22, 2020