flask - 每个 sql 查询的 sqlalchemy 随机种子
问题描述
我正在寻找一种方法来随机排序 sqlalchemy 查询的结果,但是我希望每个用户的随机顺序基于让我们说一个令牌是一致的。
q = q.order_by(func.random())
注意:我正在使用 postgresql
我发现我可以使用select setseed(0)
查询结果并将所有内容合并,然后偏移 1,但是假设我知道列数q
将具有(我可能会找到),但这听起来是一个非常糟糕的做法对列数进行硬编码,尤其是为了可维护性。
这是正确的方法吗?如果是这样,有没有办法动态获取查询的列数?如果不是,那么正确的方法是什么?
解决方案
您可以使用检查来获取列数
就像是:
from sqlalchemy import inspect
url=YOUR_DB_URL
engine = create_engine(url, convert_unicode=True, echo=False)
inspector = inspect(engine)
schemas = inspector.get_schema_names() #(If you need to find the names of the schemas)
number_of_cols= len(inspector.get_columns(YOUR_TABLE_NAME, schema=SCHEMA_NAME))
推荐阅读
- spring-boot - ResponseStatusException 只能处理 Controller 层执行?无法处理抛出的拦截器的执行
- c++ - C++ 数组中最后一个元素后的逗号
- spring - org/springframework/core/NativeDetector java.lang.NoClassDefFoundError: org/springframework/core/NativeDetector 问题即将到来
- calendar - gmail 中的 ICS 文件 - EXDATE(不包括日期)在 gmail 中不起作用
- iphone - iPhone 6s - 没有设置允许应用仅使用我选择的照片
- python - Cloud Firestore - 如何检索嵌套子集合的文档信息?
- python - 试图理解训练数据结构
- python - 如何在 Python 中通过部分文本进行选择 - selenium
- linux-kernel - KVM CPUID 缺少“扩展处理器信息和功能位”功能
- python - python在循环后只打印一个空行