SQLAlchemy-Abfrage, um nur n Ergebnisse zurückzugeben?

86

Ich habe die SQLAlchemy-Dokumentation gegoogelt und gelesen, aber nicht gefunden, wonach ich suche.

Ich suche nach einer Funktion in SQLAlchemy, die die Anzahl der von einer Abfrage zurückgegebenen Ergebnisse auf eine bestimmte Anzahl begrenzt, zum Beispiel: 5? So etwas wie first()oder all().

Xar
quelle

Antworten:

161

für sqlalchemy >= 1.0.13 Verwenden Sie die Limit- Methode.

query.(Model).filter(something).limit(5).all()
jkmacc
quelle
Ich bevorzuge diese Methode gegenüber den anderen genannten, ist schlanker, da die zusätzlichen Daten nicht über das Netzwerk übertragen werden ...
Yaakov Bressler
10

Alternative Syntax

query.(Model).filter(something)[:5].all()
mcolak
quelle
2
SQLAlchemy == 1.1.15, erhöhen:AttributeError: 'list' object has no attribute 'all'
Waket Zheng
1
Verwenden Sie diese Abfrage: query. (Model) .filter (etwas) .limit (5) Es funktioniert gut in SQLAlchemy == 1.1.15
Rana
2
Wenn Sie dies tun [: 5] Ich denke, die Datenbank würde immer noch alle Ergebnisse abrufen und dann würden Sie nur die letzten 5 verwenden. Definitiv besser, Limit zu verwenden, um zu verhindern, dass die Datenbank zusätzliche Daten zurückgibt.
Brian Sizemore
0

In meinem Fall funktioniert es wie

def get_members():
    m = Member.query[:30]
    return m
Anar Salimkhanov
quelle