--- /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()