martedì 30 settembre 2008
Appengine SDK 1.1.4
E' uscita la 1.1.4 ed ha corretto qualche buco della precedente rel. (incluso quello sotto segnalato).
giovedì 18 settembre 2008
Appengine SDK 1.1.3
E' stata rilasciata la rel 1.1.3 qui per approfondimenti.
Qui per il download.
Qui per il download.
Credo forse di aver trovato un piccolo bug.
Ho riscontrato un problema sulla console-admin (http://localhost:8080/_ah/admin/datastore) del Web Server in una applicazione che accede al datastore locale.
La stessa applicazione su appspot.com funziona.
In sintesi sembra che un campo float produca un errore:
\google\appengine\api\datastore_file_stub.py", line 626, in _Dynamic_GetSchema
value_pb.set_doublevalue(float('-inf'))
ValueError: invalid literal for float(): -inf
Rimettendo sotto la cartella \google\appengine\ tutti i files della versione 1.1.2 il problema si risolve.
La stessa applicazione su appspot.com funziona.
In sintesi sembra che un campo float produca un errore:
\google\appengine\api\datastore_file_stub.py", line 626, in _Dynamic_GetSchema
value_pb.set_doublevalue(float('-inf'))
ValueError: invalid literal for float(): -inf
Rimettendo sotto la cartella \google\appengine\ tutti i files della versione 1.1.2 il problema si risolve.
giovedì 11 settembre 2008
Sta arrivando F#
Il nuovo linguaggio di programmazione di Microsoft si chiama F#.
A mio parere il riferimento non è casuale, Python crea qualche preoccupazione nei concorrenti.
Arriverà ufficialmente il prossimo anno.
Per ora c'è già qualche interessante anteprima qui : Microsoft F#.
Al 2° punto delle ragioni che spiegano il perché Microsoft abbia deciso di creare un nuovo linguaggio oltre a quelli che già supporta è scritto :
- interactive scripting like Python and other languages
A mio parere il riferimento non è casuale, Python crea qualche preoccupazione nei concorrenti.
martedì 2 settembre 2008
Classi - esempi
Usare le classi, un esempio elementare.
All'interno dello stesso file:
class pp():
i =444
def agg(self,x):
x1 = x+10
self.i = x1
class main(): #dalla classe main richiamo le funzioni definite nella classe creata sopra
p1= pp()
print p1.i
p1.agg(3)
print p1.i
All'interno dello stesso file:
class pp():
i =444
def agg(self,x):
x1 = x+10
self.i = x1
class main(): #dalla classe main richiamo le funzioni definite nella classe creata sopra
p1= pp()
print p1.i
p1.agg(3)
print p1.i
lunedì 1 settembre 2008
GQL - Le chiavi sui record
Se tabelladati è una entity (una tabella DB ),
per leggere l'ID che viene inserito automaticamente su ogni record si può utilizzare :
tabelladati.key().id()
esempi per stampare gli ID di tutti i record:
for recordx in tabelladati:
print recordx.key().id()
oppure per stampare l'ID del primo [0] record e del secondo
rcc= tabelladati[0]
print rcc.key().id()
rcc= tabelladati[1]
print rcc.key().id()
Per selezionare il record che ha ID es. 223
codid= 223
record_estratto = tabelladati.get_by_id(int(codid))
print record_estratto.nome #stamperà il campo nome del record con ID 223
per leggere l'ID che viene inserito automaticamente su ogni record si può utilizzare :
tabelladati.key().id()
esempi per stampare gli ID di tutti i record:
for recordx in tabelladati:
print recordx.key().id()
oppure per stampare l'ID del primo [0] record e del secondo
rcc= tabelladati[0]
print rcc.key().id()
rcc= tabelladati[1]
print rcc.key().id()
Per selezionare il record che ha ID es. 223
codid= 223
record_estratto = tabelladati.get_by_id(int(codid))
print record_estratto.nome #stamperà il campo nome del record con ID 223
Etichette:
chiavi,
google app,
python
Chiamare le classi - Esempio banale
- nel file crearandom.py creo la classe Test()
- import random
- number = random.randint(1,100)
- class Test():
- xx= number
- nel file stampa.py richiamo la classe Test del file sopra
- import random, crearandom
- print crearandom.Test.xx
Iscriviti a:
Post (Atom)