From 13b89f1e424a718af75574bed0c7cc460fdda073 Mon Sep 17 00:00:00 2001 From: Daniel Barella Date: Fri, 2 Jun 2017 18:58:34 -0400 Subject: [PATCH 1/3] Refactor HTML response code Make the response writing more readable by pulling the HTML into a format string. --- appengine/standard/ndb/overview/main.py | 44 ++++++++++++++++--------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/appengine/standard/ndb/overview/main.py b/appengine/standard/ndb/overview/main.py index f2f6e755c42..52a112ebdf3 100644 --- a/appengine/standard/ndb/overview/main.py +++ b/appengine/standard/ndb/overview/main.py @@ -22,6 +22,7 @@ # [START all] import cgi +import textwrap import urllib from google.appengine.ext import ndb @@ -29,6 +30,23 @@ import webapp2 +# Template for the MainPage response +# params: blockquotes, sign, guestbook_name +RESPONSE_TEMPLATE = textwrap.dedent("""\ + + + {blockquotes} +
+
+
+
+
+
Guestbook name: +
+ +""") + + # [START greeting] class Greeting(ndb.Model): """Models an individual Guestbook entry with content and date.""" @@ -41,30 +59,24 @@ class Greeting(ndb.Model): def query_book(cls, ancestor_key): return cls.query(ancestor=ancestor_key).order(-cls.date) - class MainPage(webapp2.RequestHandler): def get(self): self.response.out.write('') guestbook_name = self.request.get('guestbook_name') ancestor_key = ndb.Key("Book", guestbook_name or "*notitle*") greetings = Greeting.query_book(ancestor_key).fetch(20) - - for greeting in greetings: - self.response.out.write('
%s
' % - cgi.escape(greeting.content)) # [END query] - self.response.out.write(""" -
-
-
-
-
-
Guestbook name: -
- - """ % (urllib.urlencode({'guestbook_name': guestbook_name}), - cgi.escape(guestbook_name))) + greeting_blockquotes = [] + for greeting in greetings: + greeting_blockquotes.append( + '
%s
' % cgi.escape(greeting.content)) + + self.response.out.write( + RESPONSE_TEMPLATE.format( + blockquotes='\n'.join(greeting_blockquotes), + sign=urllib.urlencode({'guestbook_name': guestbook_name}), + guestbook_name=cgi.escape(guestbook_name))) # [START submit] From 6bb4c27bac0ad0ecde0cbafa987d5b4e4bd61b4c Mon Sep 17 00:00:00 2001 From: Daniel Barella Date: Fri, 2 Jun 2017 23:06:14 -0400 Subject: [PATCH 2/3] Inline the response template string Reduce some of the indirection. --- appengine/standard/ndb/overview/main.py | 40 +++++++++++++------------ 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/appengine/standard/ndb/overview/main.py b/appengine/standard/ndb/overview/main.py index 52a112ebdf3..1cb87b3df82 100644 --- a/appengine/standard/ndb/overview/main.py +++ b/appengine/standard/ndb/overview/main.py @@ -30,23 +30,6 @@ import webapp2 -# Template for the MainPage response -# params: blockquotes, sign, guestbook_name -RESPONSE_TEMPLATE = textwrap.dedent("""\ - - - {blockquotes} -
-
-
-
-
-
Guestbook name: -
- -""") - - # [START greeting] class Greeting(ndb.Model): """Models an individual Guestbook entry with content and date.""" @@ -72,8 +55,27 @@ def get(self): greeting_blockquotes.append( '
%s
' % cgi.escape(greeting.content)) - self.response.out.write( - RESPONSE_TEMPLATE.format( + self.response.out.write(textwrap.dedent("""\ + + + {blockquotes} +
+
+ +
+
+ +
+
+
+
+ Guestbook name: + + +
+ + """).format( blockquotes='\n'.join(greeting_blockquotes), sign=urllib.urlencode({'guestbook_name': guestbook_name}), guestbook_name=cgi.escape(guestbook_name))) From ad0b2efb0d953ea2a222bd93ac4d1b0596bdee39 Mon Sep 17 00:00:00 2001 From: Daniel Barella Date: Mon, 5 Jun 2017 09:07:26 -0400 Subject: [PATCH 3/3] Fix lint error --- appengine/standard/ndb/overview/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/appengine/standard/ndb/overview/main.py b/appengine/standard/ndb/overview/main.py index 1cb87b3df82..629d5fae169 100644 --- a/appengine/standard/ndb/overview/main.py +++ b/appengine/standard/ndb/overview/main.py @@ -42,6 +42,7 @@ class Greeting(ndb.Model): def query_book(cls, ancestor_key): return cls.query(ancestor=ancestor_key).order(-cls.date) + class MainPage(webapp2.RequestHandler): def get(self): self.response.out.write('')