Session 缓存烧瓶登录用户\u加载器
我们使用Session 缓存烧瓶登录用户\u加载器,session,caching,flask,flask-sqlalchemy,flask-login,Session,Caching,Flask,Flask Sqlalchemy,Flask Login,我们使用flask login,从代码中可以看出,user\u loader回调在每个请求上都被调用。我知道这是为了加载当前用户,但是我可以避免每次请求都点击users表吗 下面是我的用户加载程序的外观 @login_manager.user_loader def load_user(id=None): return User.query.get(id) 应该缓存的是User.query.get,而不是load\u User 这是一个示例代码: def get_用户(id): 如果没有
flask login
,从代码中可以看出,user\u loader
回调在每个请求上都被调用。我知道这是为了加载当前用户,但是我可以避免每次请求都点击users表吗
下面是我的用户加载程序的外观
@login_manager.user_loader
def load_user(id=None):
return User.query.get(id)
应该缓存的是
User.query.get
,而不是load\u User
这是一个示例代码:
def get_用户(id):
如果没有身份证:
一无所获
缓存\u键='用户\u%d'%id'
rt=cache.get(cache\u键)
如果rt不是None:#缓存命中
返回rt
否则:#缓存未命中
u=User.query.get(id)
cache.set(cache\u键,u)
返回u
一些注意事项:
cache
对象表示一个redis客户机或memcached客户机,让您自己实现李>
读了你答案的第一行之后,我觉得自己很傻,以至于在问之前我没有想到这一点!谢谢@menghan