Wie kann man GAE Query Objektinhalt und Struktur anzeigen?

Ich möchte die Struktur eines Query-Objekts ausdrucken, ähnlich wie Sie den Inhalt eines Diktats oder einer Liste an der interaktiven Python-Eingabeaufforderung ausdrucken können. Ich habe festgestellt, dass ich Probleme habe, zu visualisieren, wie die Datenstrukturen aussehen, was natürlich die Vorlage von Vorlagen-Argumenten viel härter macht.

Zum Beispiel ist hier eine sehr einfache UserProfil db-Klasse, und ich versuche, alle Profile auszudrucken und den Inhalt des zweiten Profils.

from google.appengine.ext import db from google.appengine.ext import webapp from google.appengine.api import users from google.appengine.ext.webapp.util import run_wsgi_app class UserProfile(db.Model): user = db.UserProperty(auto_current_user_add=True) name = db.StringProperty() class TestHandlerBasic(webapp.RequestHandler): def get(self): profiles = UserProfile.all() self.response.out.write('The whole profiles: ') self.response.out.write(profiles) self.response.out.write('<p>') self.response.out.write('Now, print out all profiles: <p>') for profile in profiles: self.response.out.write(profile.user) self.response.out.write('<br>') self.response.out.write('<p>') self.response.out.write('There are this many profiles: ') self.response.out.write(profiles.count()) self.response.out.write('<p>This is the second profile profiles[1]: ') self.response.out.write(profiles[1]) return application = webapp.WSGIApplication([(r'/testbasic', TestHandlerBasic),] debug=True) 

Ich bekomme diese Art von Leistung:

Die ganzen Profile:

Jetzt alle Profile ausdrucken:

Test@example.com
Ard@example.com

Es gibt diese vielen Profile: 2

Dies sind die zweiten Profilprofile [1]:

Nach der ersten Zeile bekomme ich <google.appengine.ext.db.Query object at 0x490bd10> und die letzte Zeile bekomme ich auch <models.UserProfile object at 0x490bb90> . Also, wie kann ich einen Dump des Abfrageobjekts oder Modellobjekts ausdrucken?

One Solution collect form web for “Wie kann man GAE Query Objektinhalt und Struktur anzeigen?”

Abfrageobjekte halten sich nicht alle db.Model Entitäten, die sie von get() oder fetch() . Also musst du UserProfile.all() für so etwas wie:

 profiles = UserProfile.all().fetch(1000) 

Persönlich möchte ich die Klasse db.Model subklassen und füge ein paar Bequemlichkeiten für die Serialisierung meiner Modelle hinzu. Ich tue dies vor allem so kann ich schnell JSON Darstellungen von Entitäten, aber es ist ziemlich praktisch für Dumping / Inspektion sie auch.

Hier ist ein Beispiel für meine BaseModel- Erweiterung, die __dict__ und __json__ Methoden zu Entitäten hinzufügt. Wenn Sie auch ein __repr__ hinzugefügt __repr__ , das die __dict__ Methode __dict__ , können Sie die Zeichenfolgendarstellung der Entitäten verbessern, wenn sie auf die Konsole gedruckt werden.

  • Google App Engine - Erste Schritte mit Python 2.7
  • BadValueError bei der Eingabe von Integer in HTML-Form ausgelöst
  • Holen Sie sich die IP-Adresse in Google App Engine + Python
  • Einfache Benutzerverwaltung Beispiel für Google App Engine?
  • HttpError: <HttpError 400 bei der Anforderung von https://www.googleapis.com/bigquery/v2/projects/
  • Probleme mit Python in Google App Engine - UTF-8 und ASCII
  • PIL kann nicht gefunden werden
  • Wie kann ich Testberichte aus der webapp WSGI Applikation in Google App Engine ausführen?
  • Cron.yaml leitet keine Anfragen an das richtige Modul auf dem dev-Server weiter
  • Python-openid liefert keine ax- oder sreg-Attribute
  • Um eine statische (HTML) Website auf Google App Engine zu hosten, was sollte in der app.yaml Datei sein?
  • Python ist die beste Programmiersprache der Welt.