That is an excellent clue.  Try changing
   logging.info('Got answer, value is: %d', number.ans)
to:
   logging.info('Got answer, value is: %s', str(number.ans))


Also, just noticed one other thing.  Instead of 'if number is not
None', in Python you can do 'if number' -- much nicer.






On Thu, Aug 18, 2011 at 16:16, Matt <[email protected]> wrote:
> It doesn't look like it. This is the log
>
> INFO     2011-08-18 20:08:48,221 index.py:30] Wrote answer, key is
> agxkZXZ-bnVtZ3Vlc3NyDAsSBkFuc3dlchhWDA
> Traceback (most recent call last):
>  File "C:\Python25\lib\logging\__init__.py", line 744, in emit
>    msg = self.format(record)
>  File "C:\Python25\lib\logging\__init__.py", line 630, in format
>    return fmt.format(record)
>  File "C:\Python25\lib\logging\__init__.py", line 418, in format
>    record.message = record.getMessage()
>  File "C:\Python25\lib\logging\__init__.py", line 288, in getMessage
>    msg = msg % self.args
> TypeError: int argument required
> INFO     2011-08-18 20:08:48,299 dev_appserver.py:4247] "POST / HTTP/
> 1.1" 200 -
> INFO     2011-08-18 20:08:48,456 dev_appserver.py:4247] "GET /
> numguess.css HTTP/1.1" 200 -
>
>
> If that means anything I see a TypeError... maybe that's what is
> stopping the random number entity to be pulled back out?
>
> Thanks again for the help.
>
> On Aug 18, 11:07 am, Robert Kluin <[email protected]> wrote:
>> Hey Matt,
>>   Yeah there was a typo in my same code, should not have been:
>>     logging.info('Wrote answer, key is: %s', str(answer.key()))
>>   but rather:
>>     logging.info('Wrote answer, key is: %s', str(answer))
>>
>>   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
>>
>>
>>
>>
>>
>>
>>
>> On Thu, Aug 18, 2011 at 12:33, Matt <[email protected]> wrote:
>> > Thanks for the heads up on logging.
>>
>> > I tried the logging but don't know if I did it right. For the first
>> > logging part in the code, I put:
>> > logging.info('Wrote answer, key is: %s', str(answer.key()))
>> > and it gave me this in the browser:
>> > AttributeError: 'Key' object has no attribute 'key'
>>
>> > I tried replacing key with ans but that gave the same error type.
>> > When I just put:
>> > logging.info('Wrote answer, key is: %s', str(answer))
>> > the log file comes with this:
>> > Wrote answer, key is agxkZXZ-bnVtZ3Vlc3NyDAsSBkFuc3dlchhUDA
>>
>> > Am I doing something wrong or does this info mean anything? I honestly
>> > don't know what to make of it or what to change to get the random
>> > number in/out.. I feel like I am following what the docs say though.
>>
>> > On Aug 17, 10:19 pm, Robert Kluin <[email protected]> wrote:
>> >> Hi,
>> >>   You should check out the Python logging package, it is super handy.
>> >> Add some logging calls to your code so you can see what is happening.
>> >> For example:
>>
>> >>   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 <[email protected]> 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 [email protected].
>> >> > To unsubscribe from this group, send email to 
>> >> > [email protected].
>> >> > For more options, visit this group 
>> >> > athttp://groups.google.com/group/google-appengine?hl=en.
>>
>> > --
>> > You received this message because you are subscribed to the Google Groups 
>> > "Google App Engine" group.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to 
>> > [email protected].
>> > For more options, visit this group 
>> > athttp://groups.google.com/group/google-appengine?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to