python - Retrieving Submitted Greetings in the Tutorial -
i'm working though gae tutorial , i'm getting following error.
file "/users/cparrish/bin/guestbook/guestbook.py", line 62, in greeting in greetings: nameerror: global name 'greetings' not defined
so think problem here somewhere.
greetings_query = greeting.query( ancestor = guestbook_key(guestbook_name)).order(-greeting.date) greeetings = greetings_query.fetch(10) greeting in greetings: if greeting.author: self.response.write( '<b>%s</b> wrote:' % greeting.author.nickname()) which lines 58 - 66 i'm wondering if else can see i'm apparently missing here.
full code base below.
import cgi import urllib google.appengine.api import users google.appengine.ext import ndb import webapp2 main_page_footer_template = """\ <form action="/sign?%s" method="post"> <div><textarea name="content" rows="3" cols="60"></textarea></div> <div><input type="submit" value="sign guestbook"></div> </form> <hr> <form>guestbook name: <input value="%s" name="guestbook_name"> <input type="submit" value="switch"> </from> <a href="%s">%s</a> </body> </html> """ default_guestbook_name = 'default_guestbook' # set parent key on 'greetings' ensure in same # entity group. queries across signle entity group consistent. # however, write rate should limited -1/second. def guestbook_key(guestbook_name="default_guestbook_name"): """ constructs datastore key guestbook entity guestbook_name. """ return ndb.key('guestbook', guestbook_name) class greeting(ndb.model): """models individual guestbook entry author, content, , date. """ author = ndb.userproperty() content = ndb.stringproperty( indexed = false ) date = ndb.datetimeproperty( auto_now_add = true ) class mainpage(webapp2.requesthandler): def get(self): self.response.write('<html><body>') guestbook_name = self.request.get('guestbook_name', default_guestbook_name) # ancestor queries, shown here, consisten high # replication datastore. queries span entity groups # consisten. if omitted ancestor query there # slight chance greetings had been written not # show in query. greetings_query = greeting.query( ancestor = guestbook_key(guestbook_name)).order(-greeting.date) greeetings = greetings_query.fetch(10) greeting in greetings: if greeting.author: self.response.write( '<b>%s</b> wrote:' % greeting.author.nickname()) else: self.response.write('an anonymous person wrote:') self.response.write('<blockquote>%s</blockquote' % cgi.escape(greeting.content)) if users.get_current_user(): url = users.create_logout_url(self.request.uri) url_linktext = 'logout' else: url = users.create_login_url(self.request.uri) url_linktext = 'login' # write submission form , footer of page sign_query_parms = urllib.urlencode({'guestbook_name': guestbook_name}) self.response.write(main_page_footer_template % (sign_query_parms, cgi.escape(guestbook_name), url, url_linktext)) class guestbook(webapp2.requesthandler): def post(self): # set same parent key on 'greeting' ensure each getting # in same entity group. queries across single entity group # consistent. however, write reate sing entity groupo # should limited ~1/second. guestbook_name = self.request.get('guestbook_name', default_guestbook_name) greeting = greeting(parent=guestbook_key(guestbook_name)) if users.get_current_user(): greeting.author = users.get_current_user() greeting.content = self.request.get('content') greeting.put() query_params = {'guestbook_name': guestbook_name} self.redirect('/?' + urllib.urlencode(query_params)) application = webapp2.wsgiapplication([ ('/', mainpage), ('/sign', guestbook), ], debug=true)
there 3 e's in assignment of greeetings.
greeetings = greetings_query.fetch(10) greeting in greetings: one of these es not others, 1 of these es doesn't belong...
Comments
Post a Comment