from google.appengine.Méthode utilisant ext import db.(db au lieu de ndb)
GAE (Google App Engine) * Je pense que c'est la même chose avec GCE, mais je ne l'ai jamais utilisé
Python2.7
# Fonctionnement de la banque de données depuis Cloud Console
## Signification des mots
Une entité équivaut à un enregistrement dans le SGBDR. Correspond à une ligne dans un tableau.
Le type est équivalent à une table dans le SGBDR.
L'identificateur de clé est la clé primaire dans le SGBDR.
L'espace de noms est inconnu.
## Créer une entité
Passez à l'écran de création depuis "Créer une entité" en haut de l'écran du magasin de données.
--Namespace: [Par défaut]
--Type: UserData
- Identificateur de clé: Nom personnalisé: xxxxxxxxxxxxxxxxx (lineId)
Ce qui suit est ajouté en sélectionnant "Ajouter une propriété".
Exemple de lineId:
--Nom: lineId
--Type: Chaîne de caractères
--Valeur: xxxxxxxxxxxxxxxxx (lineId)
Liste des propriétés ajoutées.
- lineId:xxxxxxxxxxxxxxxxx(lineId)
- dashId:shoshuriki
--message: quelqu'un vous appelle
- registrationTime:2016/01/02 00:27:12
* Je ne suis pas sûr de "l'enregistrement d'index", mais il semble que les performances de recherche s'amélioreront si vous vous inscrivez, alors vérifiez-le. Le compromis est inconnu. (L'insertion ralentit ??)
## Référencement et mise à jour des entités
Sélectionnez "Nom / ID" pour passer à l'écran de mise à jour. Vous pouvez également vérifier la valeur ici.
--Espace de nom, type, clé (identificateur de clé), ceux-ci ne peuvent pas être mis à jour (modifiés).
--Les propriétés peuvent être mises à jour. (Nom, type, valeur, qui peuvent tous être mis à jour.)
--Sélectionnez "Enregistrer" pour enregistrer dans le magasin de données.
## Supprimer l'entité
Sélectionnez dans la case à cocher à gauche de "Nom / ID"
Peut être supprimé de «Supprimer» sur le côté droit de «Créer une entité».
## Rechercher des entités
Sélectionnez un type de liste déroulante ou
Définir les conditions à partir de "Filtrer les entités"
Il est possible de restreindre les entités à afficher.
# Fonctionnement du magasin de données depuis App Engine
[PostScript 2017/1/4 à partir d'ici]
Il existe deux façons de faire fonctionner le magasin de données à partir d'App Engine.
- db (from google.appengine.ext import db)
- ndb (from google.appengine.ext import ndb)
Il n'y a aucune différence pour pouvoir faire fonctionner la banque de données dans les deux cas, mais comme ndb est un module plus récent, il semble que ndb soit recommandé lors du démarrage à partir de maintenant.
Si vous devez utiliser le module db pour une raison quelconque, nous vous serions reconnaissants de bien vouloir consulter cet article.
Qu'est-ce que ndb
https://cloud.google.com/appengine/docs/python/ndb/?hl=ja
À propos de la migration de db vers ndb
https://cloud.google.com/appengine/docs/python/ndb/db_to_ndb?hl=ja
[PostScript 2017/1/4 jusqu'à présent]
Reportez-vous à la page suivante.
https://cloud.google.com/appengine/docs/python/datastore/entities
## Créer une entité
Avant de créer l'entité, créez la classe sous-jacente.
from google.appengine.ext import db
class UserData(db.Model): lineId = db.StringProperty() dashId = db.StringProperty() message = db.StringProperty() registrationTime = db.StringProperty()
Créez une instance basée sur cela et placez-la dans le magasin de données pour la créer en tant qu'entité.
userData = UserData( key_name = 'xxxxx(lineId)', lineId = 'xxxxx(lineId)', dashId = 'shoshuriki', message = u'Quelqu'un t'appelle', registrationTime = '2016/01/02 00:27:12', ) userData.put()
Voici une comparaison des éléments définis dans Cloud Platform.
--Type: UserData (Le nom de la classe devient le type (kind) tel quel. Si vous voulez le spécifier, ajoutez le type de fonction membre et renvoyez la chaîne de caractères, et il devient le type (non confirmé))
--Key identifier: chaîne de caractères affectée à key_name
--Namespace: Non spécifié (où spécifier est inconnu)
## Référencement et mise à jour des entités
Une méthode qui ne fonctionne que si vous connaissez l'identificateur de clé.
Récupérez l'objet clé de l'entité à partir de l'identificateur de clé et obtenez l'entité à partir de l'objet clé.
Étant donné que l'entité est une classe créée par vous-même, vous pouvez librement faire référence aux propriétés et y écrire.
S'il est écrit, envoyez l'entité au magasin de données en la plaçant à la fin.
try: key = db.Key.from_path('UserData', 'xxxxx(lineId)') userData = db.get(key) old_message = userData.message #Pièce de référence userData.message = u'Veuillez venir lentement' #Mettre à jour une partie userData.put() #Si seulement référence, mettre n'est pas nécessaire except: print(u'Impossible de localiser')
* Un bloc try est requis car une exception se produira si la cible n'est pas trouvée.
## Supprimer l'entité
Une méthode qui ne fonctionne que si vous connaissez l'identificateur de clé.
Récupérez l'objet clé de l'entité à partir de l'identificateur de clé et supprimez l'entité.
try: key = db.Key.from_path('UserData', 'xxxxx(lineId)') db.delete(key) except: print(u'Impossible de localiser')
* Un bloc try est requis car une exception se produira si la cible n'est pas trouvée.
## Rechercher des entités
Pour un type, utilisez la valeur de la propriété pour affiner et obtenir le résultat.
S'il n'y a qu'une seule entité cible, il est prudent de spécifier limit = 1.
try: q = UserData.all() q.filter('dashId = ', 'shoshuriki') for p in q.run(limit=1): lineId = p.lineId #Inverser lineId à partir de dashId except: print(u'Impossible de localiser')
* Un bloc try est requis car une exception se produira si la cible n'est pas trouvée.
* Comment inverser key_name de dashId?
# référence
Google Cloud Platform-Datastore
https://console.cloud.google.com/datastore
Migration de la bibliothèque client DB vers NDB (facile à comprendre car l'utilisation est simple)
https://cloud.google.com/appengine/docs/python/ndb/db_to_ndb?hl=ja
Recommended Posts