gpt4 book ai didi

python - 在 Flask DB 类上使用 SQLalchemy 不同的函数

转载 作者:行者123 更新时间:2023-12-02 00:31:10 26 4
gpt4 key购买 nike

是否可以在不使用 sqlalchemy 中的“ session ”类的情况下使用不同的函数?为什么或者为什么不?我在这里找到的答案:https://stackoverflow.com/a/35718413/10210394似乎它应该工作,但它不适合我。请参见下面的示例:

class Example(db.Model):
title = db.Column(db.String(140))
extra = db.Column(db.String(140))

e1 = Example(title='foo', extra='bar')
e2 = Example(title='hoo', extra='bar')

db.session.add_all([e1, e2])
db.session.commit()

test = []
for value in Example.query.distinct(Example.extra):
test.append(value.extra)

print(len(test))
...2

结果应该是 1 而不是 2。查看 distinct() 的文档,我觉得这应该可行。我错过了什么?

最佳答案

我找到了几种方法来完成我想要的。看着这个答案https://stackoverflow.com/a/17224056/10210394 ,为了获得不同的值,必须在值上显式调用 distinct()。要以类形式执行此操作,可以使用“with_entities”

Example.query.with_entities(Example.extra).distinct()

此外,在我的例子中,一个简单的 group_by 也达到了预期的结果(但它可能不是评论中指出的最佳/最便携的解决方案。)

 test = []
for value in Example.query.group_by(Example.extra):
test.append(value.extra)

print (test)
....['bar']

关于python - 在 Flask DB 类上使用 SQLalchemy 不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51871550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com