2011-01-21 9 views

risposta

0

Supponendo che il modulo sia disponibile in Google App Engine, controlla il modulo uuid di Python.

0

Qualche possibilità sono di guida per le cose che stai memorizzando nel datastore?

Se è così, credo object.key è un GUID

+1

oggetti chiave sono composti di diversi componenti (App ID, nome tipo, chiave o id); non sono GUID. –

+0

Perché non dovrebbe essere un GUID? Forse ho la definizione di GUID errata, pensavo fossero semplicemente ID univoci a livello globale. Se ho composto l'ID app (globalmente unico tra le app) con il tipo (univoco con un'app) e la chiave (univoco nel genere), non sarebbe globalmente univoco? –

+1

I * think * il problema per l'OP potrebbe essere che sono ipotizzabili - quindi un utente malintenzionato potrebbe facilmente intuire altre chiavi se ne hanno una. I GUID non garantiscono che un GUID selezionato casualmente non corrisponda a qualcosa nella tua app, ma almeno diminuisce le probabilità in maniera massiccia. http://code.google.com/appengine/docs/python/datastore/keyclass.html – Ryan

5

Il uuid module dovrebbero essere disponibili.

Perché hai bisogno di uuids? Di solito sono necessari per rendere le chiavi primarie davvero uniche, ma in realtà il datastore di GAE dovrebbe prendersene cura per te.

+0

I valori unici sono a portata di mano, ad es. quando genera nonce o, ad esempio, un riferimento di pagamento quando si parla di API esterne. – andruso

5

Esempio di codice utilizzando il modulo uuid:

from uuid import uuid4 

print(uuid4()) 

# Output: 7d720c5a-b3e9-455e-961c-0e37b330b098 
1
import uuid 

print(uuid.uuid4().hex) 
Problemi correlati