Ich bin mir bewusst, dass reguläre Abfrage oder die Iterator-Methode queryset ausgewertet und den gesamten Datensatz in einem Schuss zurückgibt.Abrufen von Abfrage-Set-Daten eins nach dem anderen
zum Beispiel, nehmen Sie dies:
my_objects = MyObject.objects.all()
for rows in my_objects: # Way 1
for rows in my_objects.iterator(): # Way 2
Frage
Bei beiden Verfahren werden alle Zeilen abgerufen werden, in einem single-go.Is es eine Möglichkeit, in Djago, dass die queryset Reihen sein können nacheinander aus der Datenbank abgerufen.
Warum diese seltsame Anforderung
Derzeit meine Abfrage lässt holt sagt Zeilen n, aber ich bekommen irgendwann Python and Django OperationalError (2006, 'MySQL server has gone away').
so eine Abhilfe für dieses zu haben, ich zur Zeit eine seltsame while
Looping logic.So frage mich, bin mit, wenn es irgendeine nativen oder eingebaute Methode oder ist meine Frage auch logisch in erster Linie ist !! :)
Ich gehe davon aus Sie in ausgesehen haben hier die aktuelle Ausgabe Festsetzung, die natürlich bevorzugt werden :) würde – Sayse
das ist definitiv eine Weise, die ich in Betracht gezogen haben, während sie um zu graben, sieht neat.I bin frage mich, ob es noch einen anderen * nativen * Weg im Django gibt ohne Grenzen? Was das eigentliche Problem betrifft, so ist es mit der Django-Version verwandt, aber da das ganze Projekt darauf basiert, kann ich nichts dagegen tun ..... – NoobEditor
@NoobEditor - Ich denke, das ist ungefähr so nativ wie es geht, da dies die von Ihnen durchgeführte Abfrage ändert. Sie werden weiterhin mehrere Abfragen in der Datenbank ausführen, aber nur N Ergebnisse auf einmal zurückgeben. Die andere Option besteht darin, zu prüfen, was Sie tatsächlich zurückgeben müssen, und "Werte" zu verwenden, um nur diese Felder zurückzugeben. (Auch wenn ich in meinem Beispiel nur 5 auf einmal holen würde, würde ich mir vorstellen, dass Sie viel mehr als das auf einmal bewältigen können) – Sayse