# 缓存设置
CACHE_TYPE = 'simple'
# CACHE_TYPE = 'filesystem'
# CACHE_THRESHOLD = 5000
CACHE_DIR = './tmp/'
CACHE_DEFAULT_TIMEOUT = 60 * 60 * 1
@cache.memoize(timeout=7200)
def get_token(self, secret):
uri = f'{self.host}/gettoken?corpid={self.corpid}&corpsecret={secret}'
res = http(uri) # 这里用 http 去统一处理.
token = res.get('access_token', '')
if not token:
errcode = res.get('errcode', '')
errmsg = res.get('errmsg', '')
current_app.logger.error(f'get_token error. errcode: {errcode}; errmsg:{errmsg}.')
else:
current_app.logger.debug(f'get_token success. token: {token}')
return token
上例这样写没错吧? 问题是我在 http 请求函数里面打日志 每次都会进行请求
from flask_caching import Cache
from flask import Flask
app = Flask(__name__)
cache = Cache()
cache.init_app(app, config={
"CACHE_TYPE": "simple"
})
def ab(dd):
print('ab')
return dd
@cache.memoize(timeout=30)
def sum_data(a, b):
c = int(a) + int(b)
c = ab(c)
return c
@app.route('/')
def hello_world():
return str(sum_data(1, 2))
if __name__ == "__main__":
app.run(debug=True)
一气之下, 自己用官方的例子发现并不会重复输出 ab 有点费解. 哪里出错了.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.