python - 改组 SQLAlchemy 结果?

标签 python database django sqlalchemy flask

有问题的代码:

 random_items = random.shuffle(Item.query.all())[20:30]

它在 Flask/SQLAlchemy 应用程序中。Item 是模型。

这就是我现在正在做的并且它有效,但我预见到当我开始使用真实数据集时会发生灾难。

如何正确执行此操作?

最佳答案

我不完全确定你的担忧。是不是您将返回一个大型数据集,因此大型列表将在内存中进行操作?

如果是这样,如果您不太担心可移植性,则可以在 SQL 语句中执行此操作;即,如果您使用的是 MySQL,您可以:

from sqlalchemy.sql.expression import func
Item.query.order_by(func.rand()).offset(20).limit(10).all()

或者,在 PostgreSQL 中:

from sqlalchemy.sql.expression import func
Item.query.order_by(func.random()).offset(20).limit(10).all()

其他数据库也有类似的机制,因此调用的函数将取决于您的目标。当然,如果您正在尝试编写可以在任何 SQLAlchemy 后端上运行的通用应用程序,您可能需要坚持使用提供的示例。

关于python - 改组 SQLAlchemy 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005391/

相关文章:

python - 使用 python 重命名文件时出现问题,某些字符拒绝更改。(可能是更改编码时出现问题)

Python "join"功能类似于 unix "join"

python - 预期出现缩进 block python 错误

sql - 使用关联行检索查找列两次

database - "permission denied"用于 pg_dump 输出文件

Python Django 缓存与模型字段中的存储?哪个更有效率?

python - 用循环更新表

mysql - 如何在定时函数中从客户端代码实时接收MySQL数据库中的任何更改?

python - 从管理界面上传新音频文件时,django-audiofield没有此类文件或目录

javascript - 如何将 Django 服务器变量传递到 React jsx 中?