【问题标题】:Flask - best way to pass large JSON object to templateFlask - 将大型 JSON 对象传递给模板的最佳方式
【发布时间】:2019-04-16 22:18:18
【问题描述】:

我试图弄清楚如何将一个大型 JSON 对象传递给一个模板,该对象由一个包含大约 500000 多个条目的列表构成。我目前的做法适用于较小的物体:

return render_template('/dataprocessing.html', data=json.dumps(result))

data=json.dumps(result) 是我将大型 JSON 对象传递给模板的方式。但是,存储在客户端中的这个对象的大小大大降低了我的应用程序的速度。我也知道还有另一种方法可以通过 cookie 传递它,但这比这种方法更糟糕,并且不适用于更大的尺寸。

如果我将它写入一个文件并从中读取,我是否能够更有效地读取我的模板中的这个 JSON 对象?

或者流式传输会是更好的方式吗? (我对这种方式不是很熟悉)

【问题讨论】:

  • 您的代码将 JSON 格式的 string 传递给模板渲染器,而不是 JSON object,因为 json.dumps() 返回 JSON 格式的字符串。如果您解释了模板对所有这些数据的作用,将会有所帮助。您也许可以使用分页或其他策略以较小的块显示数据。

标签: javascript python json flask stream


【解决方案1】:

毫无疑问,尝试将 50 万个对象通过视图传递到模板(然后通过网络(然后再传递到浏览器))可能会降低您的应用程序的速度。

这是一个邀请您重新思考您在做什么以及用户体验的重要性的邀请。你需要一次所有的对象吗?在这种情况下,您可以将数据流式传输到块中(例如,在用户滚动时继续增长表)?某些对象是否比其他对象更“重要”?能否先显示关键对象,然后在用户观看或钻入时添加?

很大程度上取决于您要做什么。

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2021-03-09
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多