我们使用flask-login
,并且从代码中看来,每个请求都会调用user_loader
回调。我知道它是加载当前用户但是我可以规避每个请求命中用户表吗?
这是我的用户加载器的样子
@login_manager.user_loader
def load_user(id=None):
return User.query.get(id)
答案 0 :(得分:1)
应该缓存User.query.get
而不是load_user
这是一个示例代码:
def get_user(id):
if not id:
return None
cache_key = 'user_%d' % id
rt = cache.get(cache_key)
if rt is not None: # cache hitten
return rt
else: # cache miss
u = User.query.get(id)
cache.set(cache_key, u)
return u
一些注意事项:
cache
对象代表redis客户端或memcached客户端,让您实现。