Frage

Ich arbeite an einer Google App Engine-Anwendung, und habe einige Probleme mit einer GQL Abfrage und eine if-Anweisung gegenüber. Dies ist der Code:

q = Song.gql("WHERE title = :1", self.request.get('song_title'))
q.get()
  if q:
    r = "Excisting Results Found: <br />"
    print q
    for song in q:
      r += song.title+" by "+song.artist+"<br />"
    self.response.out.write(r)
  else: 
    ...

Wenn dies ausgeführt wird, wird die Seite returns „Altbau Ergebnisse gefunden:“ aber ich weiß, dass keine Ergebnisse in der Tat waren gefunden. Gibt es eine Möglichkeit zu überprüfen, ob die Ergebnisse von der Abfrage zurückgegeben leer sind? Was wäre ein leeres Ergebnis aus GqlQuery zurückgegeben Look wie?

Jede Hilfe wäre sehr geschätzt,
Danke.

War es hilfreich?

Lösung

In diesem Beispiel q ein GQL Abfrageobjekt. Auch wenn Sie es als iterable, ruft get behandeln kann () auf es wird ein einzelnes Ergebnis zurück, und Sie würden dieses Ergebnis einer Variablen zugewiesen werden müssen. Sie können auch überprüfen, ob es Ergebnisse sind durch Prüfen, ob q.count (1) größer als 0 ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top