thirdparty/google_appengine/demos/guestbook/guestbook.py
changeset 109 620f9b141567
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/thirdparty/google_appengine/demos/guestbook/guestbook.py	Tue Aug 26 21:49:54 2008 +0000
@@ -0,0 +1,79 @@
+#!/usr/bin/env python
+#
+# Copyright 2007 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+import cgi
+import datetime
+import wsgiref.handlers
+
+from google.appengine.ext import db
+from google.appengine.api import users
+from google.appengine.ext import webapp
+
+class Greeting(db.Model):
+  author = db.UserProperty()
+  content = db.StringProperty(multiline=True)
+  date = db.DateTimeProperty(auto_now_add=True)
+
+
+class MainPage(webapp.RequestHandler):
+  def get(self):
+    self.response.out.write('<html><body>')
+
+    greetings = db.GqlQuery("SELECT * "
+                            "FROM Greeting "
+                            "ORDER BY date DESC LIMIT 10")
+
+    for greeting in greetings:
+      if greeting.author:
+        self.response.out.write('<b>%s</b> wrote:' % greeting.author.nickname())
+      else:
+        self.response.out.write('An anonymous person wrote:')
+      self.response.out.write('<blockquote>%s</blockquote>' %
+                              cgi.escape(greeting.content))
+
+    self.response.out.write("""
+          <form action="/sign" method="post">
+            <div><textarea name="content" rows="3" cols="60"></textarea></div>
+            <div><input type="submit" value="Sign Guestbook"></div>
+          </form>
+        </body>
+      </html>""")
+
+
+class Guestbook(webapp.RequestHandler):
+  def post(self):
+    greeting = Greeting()
+
+    if users.get_current_user():
+      greeting.author = users.get_current_user()
+
+    greeting.content = self.request.get('content')
+    greeting.put()
+    self.redirect('/')
+
+
+application = webapp.WSGIApplication([
+  ('/', MainPage),
+  ('/sign', Guestbook)
+], debug=True)
+
+
+def main():
+  wsgiref.handlers.CGIHandler().run(application)
+
+
+if __name__ == '__main__':
+  main()