import logging
def post(self):
stguess = self.request.get('guess')
if stguess == 'new':
answer = Answer(ans = (random.randint(1, 100))).put()
logging.info('Wrote answer, key is: %s', str(answer.key()))
number = Answer.all().get()
if number is not None:
logging.info('Got answer, value is: %d', number.ans)
answer = number.ans
else:
logging.info('Oh No! Got no answer!')
answer = None
else:
logging.info('Doing nothing.')
Robert
On Wed, Aug 17, 2011 at 17:33, Matt <mpiec...@gmail.com> wrote:
> I am trying to pull an integer from the datastore but I keep getting
> None back. I store the integers here-
>
> class Answer(db.Model):
> ans = db.IntegerProperty()
>
> As a test I did this -
>
> def post(self):
>
> stguess = self.request.get('guess')
> if stguess == 'new':
> answer = Answer(ans = (random.randint(1, 100))).put()
> number = Answer.all().get()
> if number is not None:
> answer = number.ans
> else:
> answer = None
> msg = str(answer)
>
> So what that does is take user input from the user and if they entered
> 'new' follow the if path. ans equals a random integer between 1 and
> 100. Put it in Answer. Then immediately after, pull the first integer
> from Answer. If it is not None assign the variable answer to the
> result, else assign it to None. msg is displayed on screen. Instead of
> a random number which I am expecting to be displayed, None is
> displayed instead.
>
> I also tried using count to see how many items were actually in the
> database and the count was more than 0.
>
> Is there anything wrong with how I am putting or retrieving from the
> datastore? How can I change this so I get the random number into the
> answer variable, not None?
>
> Thanks for any help
>
> --
> You received this message because you are subscribed to the Google Groups "Google App Engine" group.
> To post to this group, send email to google-a...@googlegroups.com.
> To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
>
>
What that is telling you is that an answer entity was successfully
written. So, now you know that the entity is getting written, what is
the next logging line? Are you getting an entity back from the
datastore?
Robert
Also, just noticed one other thing. Instead of 'if number is not
None', in Python you can do 'if number' -- much nicer.
Also, just noticed one other thing. Instead of 'if number is not
None', in Python you can do 'if number' -- much nicer.
True. But I find that syntax cleaner for an entity. Maybe just a
personal preference though...
>
> I am not sure which reads better
>
> number is not None
I like this one, it is very natural feeling.
> or
> not number is None
> or
> or number != None
None is an instance, iirc. So you're supposed to use 'is' to check
identity, I think. ;)
>
>
>
> T
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/google-appengine/-/OZApIUGT9noJ.
The good news is that you now know how to use logging, so you'll be
able to debug issues like this better in the future.
Robert