python - 如何将大量参数传递给 Django 中的 View ?

标签 python django parameters charts

我是 Django 的新手,我正在尝试构建一个应用程序以在表格和图表中显示我的数据。到目前为止,我的学习过程非常顺利,但现在我有点卡住了。

我的综合浏览量从数据库中检索大量数据并将其放入上下文中。然后模板生成不同的 html 表。到目前为止一切顺利。
现在我想向模板添加不同的图表。我设法通过定义 <img src=".../> tags. 来做到这一点Matplotlib 图表在我的图 TableView 中生成并通过以下方式返回:

response=HttpResponse(content_type='image/png')
canvas.print_png(response)
return response

现在我有不同的问题:

  1. 从数据库中检索数据两次。一次在页面 View 中呈现表格,然后再次在图 TableView 中制作图表。将已在页面上下文中的数据传递到图 TableView 的最佳方式是什么?
  2. 我需要很多图表,每个图表都有不同的数据集。我可以为每个图表制作图 TableView ,但可能有更好的方法。如何将不同的数据集名称传递给图 TableView ?有些图表有 20 个数据集,所以我不认为通过 url 传递这些数据集参数(如:<imgm src="chart/dataset1/dataset2/.../dataset20/chart.png />)是正确的方法。
    有什么建议吗?

最佳答案

您不能将数据从页面 View 传递到图 TableView ,因为它们是单独的 HTTP 请求。您有几个选择:

  1. 传递图表 URL 中的所有数据。这听起来很疯狂,但这正是 Google Charts 所做的:http://code.google.com/apis/chart/docs/making_charts.html

  2. 将数据存储在 session 中。页面 View 将数据填充到 session 中,图 TableView 将使用它来创建图表。

  3. 在内存缓存中缓存您的数据库查询。由于页面和图表都将引用相同的查询,您很可能会访问缓存。这是一个很好的解决方案,因为即使没有先呈现页面,您的图表仍然可以工作。

  4. 再次查询数据库。您的 DBMS 可能具有良好的缓存,性能可能不是您想象的问题。

对于第二个问题,一个 URL 中包含 20 个单词似乎没什么大不了的。当然,您或许可以为所选的数据集找到一些模式,这样您就不需要每次都指定它们,但如果需要,只需制作长 URL。

关于python - 如何将大量参数传递给 Django 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717824/

相关文章:

Java-向类添加参数

python - 在 matplotlib 中实现水平图表

django - 管理面板中多对多字段的 List_display

javascript - 显示几秒钟后如何隐藏django消息

Django:根据字符串参数保存外键?

Matlab:fminsearch 返回的估计值不正确

Objective-C 判断参数是否为对象

Python:如何通过网络连接传输可变长度数组

python - Python 中递归函数中的计数器不会通过 Print 生成输出(使用 Netbeans)

python - 为什么 python 异常通常不打印违规值?