Joh*_*etz 6 python cookies session flask
我正在构建一个数据分析 Flask 应用程序,它需要大量用户输入,执行一些计算,然后将结果投影到各种网页。我正在使用 Pandas Dataframe 来存储输入并执行计算。然后我将 DF 转换为字典并将其存储在会话对象中。
由于会话对象只能容纳 ~4k 字节,我遇到了问题。有几个页面读取数据,所以我需要一种方法来将大量数据(~5k-50k)从一个请求传递到另一个请求(会话对象可以完美地完成,但内存大小较小)。
我可以为会话对象设置更高的存储限制吗(我想我不能,因为 4k 是 cookie 的限制,而会话对象是一个 cookie)?或者我应该在这里做些什么(将字典存储在数据库中等)?
编辑:
我认为一个可行的替代方法是从数据库(在我的例子中是 mongodb)中获取数据,将其存储在一个局部变量中,然后将该变量直接传递给模板。这有负面影响吗?我可以将目录传递给模板的内存量是否有限制?请参阅下面的示例:
@app.route('/results')
def results():
# get data I need from database (~5k-50k bytes)
data = mongo.db[collection_name].find_one({'key': 'query'})
# pass directory to template (instead of storing in session object)
return render_template('results_page.html', data=data)
Run Code Online (Sandbox Code Playgroud)
是的,这听起来确实像是服务器端会话的情况。
\n官方网站上有最流行数据库的代码片段。
这些应该不难迁移,因为它们使用SessionMixin
与 cookie 会话系统相同的接口。
一种更简单的方法可能是使用Flask-KVSession,它声称
\n\n\n\n与 Flask 的集成是无缝的,一旦为 Flask 应用程序加载了扩展,它就会透明地取代 Flask\xe2\x80\x99 自己的会话管理。任何使用会话的应用程序都应该与 Flask-KVSession 一样工作
\n
归档时间: |
|
查看次数: |
6611 次 |
最近记录: |