[PYTHON] (Anfänger) Grundlegende Verwendung des Datenspeichers von Google App Engine

Annahme

from google.appengine.Methode mit ext import db.(db statt ndb)


 GAE (Google App Engine) * Ich denke, es ist dasselbe mit GCE, aber ich habe es nie benutzt
Python2.7

# Datenspeicherbetrieb über die Cloud-Konsole

## Bedeutung von Wörtern

 Eine Entität entspricht einem Datensatz in RDBMS. Entspricht einer Zeile in einer Tabelle.
 Der Typ entspricht einer Tabelle in RDBMS.
 Die Schlüsselkennung ist Primärschlüssel in RDBMS.
 Der Namespace ist unbekannt.

## Entität erstellen

 Übergang zum Erstellungsbildschirm von "Entität erstellen" oben im Datenspeicherbildschirm.

 --Namespace: [Standard]
 --Type: UserData
 - Schlüsselkennung: Benutzerdefinierter Name: xxxxxxxxxxxxxxxxxx (lineId)

 Das Folgende wird durch Auswahl von "Eigenschaft hinzufügen" hinzugefügt.

 lineId Beispiel:

 --Name: lineId
 --Type: Zeichenkette
 --Wert: xxxxxxxxxxxxxxxxxx (lineId)

 Liste der hinzugefügten Eigenschaften.

- lineId:xxxxxxxxxxxxxxxxx(lineId)
- dashId:shoshuriki
 --message: Jemand ruft dich an
- registrationTime:2016/01/02 00:27:12

 * Ich bin mir bei der "Indexregistrierung" nicht sicher, aber es scheint, dass sich die Suchleistung verbessern wird, wenn Sie sich registrieren. Überprüfen Sie dies. Der Kompromiss ist unbekannt. (Einfügen verlangsamt sich ??)

## Entitäten referenzieren und aktualisieren

 Wählen Sie "Name / ID", um zum Aktualisierungsbildschirm zu gelangen. Sie können den Wert auch hier überprüfen.

 --Namespace, Typ, Schlüssel (Schlüsselkennung), diese können nicht aktualisiert (geändert) werden.
 - Eigenschaften können aktualisiert werden. (Name, Typ, Wert, die alle aktualisiert werden können.)
 --Wählen Sie "Speichern", um im Datenspeicher zu speichern.

## Entität löschen

 Aktivieren Sie das Kontrollkästchen links neben "Name / ID".
 Kann aus "Löschen" auf der rechten Seite von "Entität erstellen" gelöscht werden.

## Suche nach Entitäten

 Wählen Sie eine Art Dropdown-Liste oder
 Festlegen von Bedingungen unter "Entitäten filtern"
 Es ist möglich, die anzuzeigenden Objekte einzugrenzen.


# Datenspeicherbetrieb von App Engine

 [2017/1/4 Nachtrag von hier]
 Es gibt zwei Möglichkeiten, den Datenspeicher über die App Engine zu betreiben.

- db (from google.appengine.ext import db)
- ndb (from google.appengine.ext import ndb)

 In beiden Fällen besteht kein Unterschied darin, den Datenspeicher betreiben zu können. Da ndb jedoch ein neueres Modul ist, wird ndb anscheinend empfohlen, wenn Sie von nun an beginnen.
 Wenn Sie das Datenbankmodul aus irgendeinem Grund verwenden müssen, würden wir uns freuen, wenn Sie auf diesen Artikel verweisen könnten.

 Was ist ndb
https://cloud.google.com/appengine/docs/python/ndb/?hl=ja
 Informationen zur Migration von db nach ndb
https://cloud.google.com/appengine/docs/python/ndb/db_to_ndb?hl=ja
 [2017/1/4 Nachtrag bisher]


 Siehe folgende Seite.
https://cloud.google.com/appengine/docs/python/datastore/entities


## Entität erstellen

 Erstellen Sie vor dem Erstellen der Entität die zugrunde liegende Klasse.

from google.appengine.ext import db

class UserData(db.Model): lineId = db.StringProperty() dashId = db.StringProperty() message = db.StringProperty() registrationTime = db.StringProperty()


 Erstellen Sie darauf basierend eine Instanz und legen Sie sie im Datenspeicher ab, um sie als Entität zu erstellen.

userData = UserData( key_name = 'xxxxx(lineId)', lineId = 'xxxxx(lineId)', dashId = 'shoshuriki', message = u'Jemand ruft dich an', registrationTime = '2016/01/02 00:27:12', ) userData.put()


 Im Folgenden finden Sie einen Vergleich der in Cloud Platform festgelegten Elemente.

 --Type: UserData (Der Klassenname wird so wie er ist zum Typ (Typ). Wenn Sie ihn angeben möchten, fügen Sie die Elementfunktionsart hinzu und geben Sie die Zeichenfolge zurück. Der Typ wird zum Typ (unbestätigt).)
 - Schlüsselkennung: Zeichenkette, die dem Schlüsselnamen zugewiesen ist
 --Namespace: Nicht angegeben (wo angegeben werden soll, ist unbekannt)

## Entitäten referenzieren und aktualisieren

 Eine Methode, die nur funktioniert, wenn Sie die Schlüsselkennung kennen.
 Holen Sie sich das Schlüsselobjekt der Entität aus der Schlüsselkennung und die Entität aus dem Schlüsselobjekt.
 Da es sich bei der Entität um eine von Ihnen selbst erstellte Klasse handelt, können Sie frei auf die Eigenschaften verweisen und darauf schreiben.
 Wenn geschrieben, senden Sie die Entität an den Datenspeicher, indem Sie sie am Ende einfügen.

try: key = db.Key.from_path('UserData', 'xxxxx(lineId)') userData = db.get(key) old_message = userData.message #Referenzteil userData.message = u'Bitte komm langsam' #Teil aktualisieren userData.put() #Wenn nur referenziert, ist put nicht notwendig except: print(u'Konnte nicht gefunden werden')


 * Ein try-Block ist erforderlich, da eine Ausnahme auftritt, wenn das Ziel nicht gefunden wird.

## Entität löschen

 Eine Methode, die nur funktioniert, wenn Sie die Schlüsselkennung kennen.
 Rufen Sie das Schlüsselobjekt der Entität aus der Schlüsselkennung ab und löschen Sie die Entität.

try: key = db.Key.from_path('UserData', 'xxxxx(lineId)') db.delete(key) except: print(u'Konnte nicht gefunden werden')


 * Ein try-Block ist erforderlich, da eine Ausnahme auftritt, wenn das Ziel nicht gefunden wird.

## Suche nach Entitäten

 Verwenden Sie für einen Typ den Wert der Eigenschaft, um das Ergebnis einzugrenzen und abzurufen.
 Wenn es nur eine Zielentität gibt, ist es sicher, limit = 1 anzugeben.

try: q = UserData.all() q.filter('dashId = ', 'shoshuriki') for p in q.run(limit=1): lineId = p.lineId #LineId von dashId umkehren except: print(u'Konnte nicht gefunden werden')


 * Ein try-Block ist erforderlich, da eine Ausnahme auftritt, wenn das Ziel nicht gefunden wird.
 * Wie kann man key_name von dashId umkehren?

# Referenz

 Google Cloud Platform-Datenspeicher
https://console.cloud.google.com/datastore

 Migration der DB-zu-NDB-Clientbibliothek (leicht zu verstehen, da die Verwendung unkompliziert ist)
https://cloud.google.com/appengine/docs/python/ndb/db_to_ndb?hl=ja


Recommended Posts

(Anfänger) Grundlegende Verwendung des Datenspeichers von Google App Engine
Verwenden Sie ndb.tasklet mit Google App Engine
Grundlegende Verwendung von Btrfs in Arch Linux
Verwenden Sie externe Module mit Google App Engine
Tweet (API 1.1) mit Google App Engine für Python
Integration von Google App Engine-Datenspeicher und Such-API
Grundlegende Verwendung von Flask-Classy
Grundlegende Verwendung von Jinja2
Grundlegende Verwendung von SQL Alchemy
Stellen Sie die Django-Anwendung in Google App Engine (Python3) bereit.
PIL in Python unter Windows8 (für Google App Engine)
Verwendung von Django mit Google App Engine / Python
Laufzeitversion der Google App Engine / Python-Standardumgebung
Super grundlegende Verwendung von Pytest
Grundlegende Verwendung der PySimple-Benutzeroberfläche
Zusammenfassung der grundlegenden Verwendung von Pandas
Grundlegende Verwendung von Python-F-String
Stellen Sie Go-Apps mit GitHub-Aktionen für Google App Engine bereit
Veröffentlichen Sie die Website kostenlos in Google App Engine (persönliches Memorandum)
Google AppEngine-Entwicklung mit Docker
Erstellen einer Entwicklungsumgebung mit Maven in Google App Engine [Java]
Verwenden der Eigenschaftendatei mit Flexible Environment Java 8 von Google App Engine
[Google App Engine] Benutzerobjekte (japanische Übersetzung)
Verwenden von Djangos ImageField mit AppEngine / Python
Ich kann nicht mehr mit der Google App Engine bereitstellen
Über das Problem, dass die Python-Version von Google App Engine nicht ineinander greift
Überprüfen Sie, wann der durch Anfragen in Google App Engine erhaltene HTML-Code verstümmelt ist
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
Bis Sie die Flask-Anwendung vorerst in Google App Engine ausführen
Verschiedene Memoranden bei Verwendung von SDK der LINE Messaging API mit Python (2.7.9) + Google App Engine