设想:
- 主要网络应用程序与. Python+Flask
- Flask 登录和
Flask.session
对于基本会话变量(用户 ID 和会话 ID)
Flask.session
和限制? (饼干)
数据库太多?
- 由于可以通过在登录时引入唯一的会话id来在服务器端识别会话,因此可以使用一些服务器端会话变量管理。在服务器端读取此数据从数据库中获取也感觉像是不必要的开销。
Question
也许这可能是一个基于内存的解决方案,但我担心不同的 Flask 应用程序请求可能在不同的线程上执行,这些线程不会共享内存存储的会话数据,或者在同时读写的情况下导致冲突。
Flask 缓存 https://flask-caching.readthedocs.io/en/latest/
您需要的是一个服务器端缓存包Flask 缓存 https://flask-caching.readthedocs.io/en/latest/.
一个简单的设置:
from flask import Flask
from flask_caching import Cache
app = Flask(__name__)
app.config['CACHE_TYPE'] = 'SimpleCache'
cache = Cache(app)
Then a 显式使用缓存变量 https://flask-caching.readthedocs.io/en/latest/#explicitly-caching-data:
@app.route('/')
def load():
cache.set("foo", foo)
bar = cache.get("foo")
Flask-Caching 还有更多内容,这就是Flask 推荐的方法。 https://flask.palletsprojects.com/en/2.0.x/patterns/caching/如果是带有gunicorn的多线程服务器从这里 https://stackoverflow.com/a/69903128/1207193你最好使用['CACHE_TYPE'] = 'FileSystemCache'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)