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.

  • Flasche vs webapp2 für Google App Engine
  • Kann auf AppEngine SDK-Sites über lokale IP-Adresse zugreifen, wenn localhost gut funktioniert und ein MacOSX
  • Schafft separate Funktionen anstelle einer großen langsamen Bearbeitungszeit?
  • Wie bekomme ich den Dateinamen mit decodem Anhang mit python email?
  • Db.ReferenceProperty () vs ndb.KeyProperty in der App Engine
  • Kratzen Sie eine Web-Seite, die Sie geben Ihnen ein Session-Cookie zuerst
  • Warum funktioniert manage.py syncdb keine Verbindung zu Google Cloud-SQL-Datenbank?
  • Hochladen von Dateien auf App Engine mit Webapp- und Django-Formularen
  • Über eine zu viele beziehungen in datastore und dereferncing in google app engine?
  • "ImportError: Kein Modul namens webapp2" nach Linux-SDK-Upgrade (1.9.35 -> 1.9.38)
  • Wie serbiere ich db.Model-Objekte zu json?
  • Python ist die beste Programmiersprache der Welt.