python - Django 的持久对象?

标签 python json django mysql-python

所以我有一个基于每个用户的网站,它需要查询一个非常大的数据库,并浏览结果。由于返回条目数量的大小,我运行了一次查询(这需要一些时间......),将结果存储在全局中,并让人们根据需要迭代(或下载)结果。

当然,这是不可扩展的,因为全局变量是跨 session 共享的。在 Django 中执行此操作的正确方法是什么?我查看了 session 管理,但总是遇到“xyz 在 json 上不可序列化”的问题。我是在研究如何使用 session 正确执行此操作,还是有其他首选方法来执行此操作?

最佳答案

如果用户正在翻阅结果,您可能不希望退回并进行渲染。大多数 SQL 方言都有 TOPLIMIT 子句,只要您的数据顺序一致,它们就可以让您返回有限范围的结果。 Django 的分页类是在 Django 模型类之上的一个很好的抽象:https://docs.djangoproject.com/en/dev/topics/pagination/

我会小心地在用户 session 中存储大量数据,因为它不会随着用户数量的增长而扩展,并且用户 session 可以在用户离开网站后保留一段时间。如果您设置了此选项,请务必阅读有关清除过期 session 的内容。 Django 不会为你做这件事: https://docs.djangoproject.com/en/1.7/topics/http/sessions/#clearing-the-session-store

关于python - Django 的持久对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27559529/

相关文章:

javascript - 如何修复Python Flask中的 "Undefined is not JSON serializable"

json - 将复杂的JSON对象传递给MVC 3操作

python - Django 极其缓慢

python - 这个函数在 Python 中涉及 urllib2 和 BeautifulSoup 做什么?

python - 使用 Ansible 启动 VM,无需 Vagrant

html - Ruby JSON 多词字符串在 HTML 中呈现不正确

django - 如何调用 Django-Admin 风格,以更少的代码提供更多

mysql - 无法让 MySQL/MariaDB 在 Fedora 24 上与 Django 1.10.1 和 Python 3.5 配合使用?

python - opcua客户端可以在Python中向服务器触发事件​​吗?

python - 无需遍历图像中的所有像素即可更快地计算像素强度(颜色值)的方法