2012-03-14 2 views
-4

im nouveau à Gae et python aussi, im essayant de construire l'application simple à l'aide datastore dans lequel le script est le suivantGae python datastore requête

from google.appengine.ext import db 
from google.appengine.ext import webapp 
from google.appengine.ext.webapp import util 

class Pincodes(db.Model): 
    city = db.StringProperty() 
    code = db.StringProperty() 

class MainHandler(webapp.RequestHandler): 
    def get(self): 
    q = Pincodes.all() 
    q = q.filter("city =", "some_city") 
    p = q.get() 
    r = 'city: %s code: %s' % (pincode.city, pincode.code) 
    self.response.out.write(r)  

mon script contient également principale d'habitude def() et if__name, im développement étape par étape à partir de simple salut world app montré dans code.google docs et cela a bien fonctionné, j'ai havoyé exemples de données de code PIN contenant 10 enregistrements au magasin de données local et son amende mais je ne peux pas interroger et afficher sur la page Web je me suis auto .response.out.write et la sortie est "ville: code:" et non "ville: code mumbai: 400001" ce qui ne va pas avec mon script

+1

* Qu'est-ce que * montre que? Comment faites-vous cette requête? Quel code utilisez-vous? Où le dirigez-vous? –

+0

son exemple d'application im créer sur dev appserver, im l'interroger avec des méthodes comme query.all et gql mais il montre message que j'ai mentionné ci-dessus, im en cours d'exécution que j'ai évalué de demo guestbook app et mon gae sdk est 1.6.1 et python 2.5.4, im un nouveau pour que vous puissiez m'aider à écrire un exemple de script que je peux utiliser. – armani2811

+0

Non. Vous n'avez pas répondu à mon commentaire. ** Montrez votre code **. –

Répondre

1

utiliser

entity = q.get() # use get if you want one entity only 
r = 'city: %s code: %s' %(entity.city, entity.code) 
self.response.out.write(r) 

au lieu de l'impression

modifier:

def get(self): 
    q = Pincodes.all() 
    q = q.filter("city =", "some_city") 
    entity = q.get() # use get if you want one entity only 
    r = 'city: %s code: %s' %(entity.city, entity.code) 
    self.response.out.write(r) 

Edit2:

def get(self): 
    q = Pincodes.all() 
    q = q.filter("city =", "some_city") 
    entity = q.get() # use get if you want one entity only 
    if not entity: 
     self.response.out.write('sorry no entities found') 
    else: 
     r = 'city: %s code: %s' %(entity.city, entity.code) 
     self.response.out.write(r) 
+0

essayé votre réponse mais il ne fonctionne toujours pas, la requête ne se passe pas. – armani2811

+0

J'ai édité ma réponse. essayer de copier coller le code et voir si cela vous donne le résultat attendu – aschmid00

+0

maintenant son affichage "AttributeError: l'objet 'unicode' n'a pas d'attribut 'has_key'" avez-vous une idée de ce que cela signifie? – armani2811