获取对象在烧瓶查询中的位置 .all()

Get position of object in flask query .all()

我想知道如何从 flask sqlalchemy 中获取某个对象在对象列表中的位置。

universities = University.query.order_by(University.students_total.desc()).all()

print universities
[<University 38>, <University 34>, <University 19>, <University 33>]

假设我想获得大学 19 的位置

我试过了,没有成功:universities.index("<University 19>")

ValueError: '<University 19>' is not in list

您可以通过查询大学然后在所有大学列表中找到该大学的索引来实现。这可能看起来像这样:

selected_university = University.query.filter_by(id=19).first()
universities.index(selected_university)

您之前的代码存在的问题是,打印所有大学的列表时会显示每个对象的字符串表示形式。然后您试图找到这些字符串表示形式之一的索引。这不起作用,因为实际列表包含对象,而不是字符串。