README update for latest SDK; misc small cleanup
[gae-samples.git] / guestbook / guestbook5_datastore.py
blobe797bccfd795261e913b5f492a31e87309143f1c
1 import cgi
3 from google.appengine.api import users
4 from google.appengine.ext import webapp
5 from google.appengine.ext.webapp.util import run_wsgi_app
6 from google.appengine.ext import db
8 class Greeting(db.Model):
9 author = db.UserProperty()
10 content = db.StringProperty(multiline=True)
11 date = db.DateTimeProperty(auto_now_add=True)
13 class MainPage(webapp.RequestHandler):
14 def get(self):
15 self.response.out.write('<html><body>')
17 greetings = db.GqlQuery("SELECT * FROM Greeting ORDER BY date DESC LIMIT 10")
19 for greeting in greetings:
20 if greeting.author:
21 self.response.out.write('<b>%s</b> wrote:' % greeting.author.nickname())
22 else:
23 self.response.out.write('An anonymous person wrote:')
24 self.response.out.write('<blockquote>%s</blockquote>' %
25 cgi.escape(greeting.content))
27 # Write the submission form and the footer of the page
28 self.response.out.write("""
29 <form action="/sign" method="post">
30 <div><textarea name="content" rows="3" cols="60"></textarea></div>
31 <div><input type="submit" value="Sign Guestbook"></div>
32 </form>
33 </body>
34 </html>""")
36 class Guestbook(webapp.RequestHandler):
37 def post(self):
38 greeting = Greeting()
40 if users.get_current_user():
41 greeting.author = users.get_current_user()
43 greeting.content = self.request.get('content')
44 greeting.put()
45 self.redirect('/')
47 application = webapp.WSGIApplication(
48 [('/', MainPage),
49 ('/sign', Guestbook)],
50 debug=True)
52 def main():
53 run_wsgi_app(application)
55 if __name__ == "__main__":
56 main()