牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Google App Engine のデモンストレーション動画をやってみた

http://code.google.com/intl/ja/appengine/にあるデモンストレーション動画

mian.py

クラス名とか若干異なるけど同じ動作のはず

#!/usr/bin/env python
# *-# -*- coding: utf-8 -*-

import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template

class Shout(db.Model):
  message = db.StringProperty(required=True)
  when = db.DateTimeProperty(auto_now_add=True)
  who = db.StringProperty()

class MainHandler(webapp.RequestHandler):
  def get(self):
    shouts = db.GqlQuery('SELECT * FROM Shout '
                         'ORDER BY when DESC')
    values = {'shouts':shouts}
    self.response.out.write(template.render('main.html', values))

  def post(self):
    shout = Shout(
      message=self.request.get('message'),
      who=self.request.get('who'))
    shout.put()
    self.redirect('/')

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
  main()

main.html

<h1>Shoutout!!!</h1>
{% for shout in shouts %}
<div>
  {{ shout.message }}
  from
  {% ifequal shout.who None %}
  Anoymous
  {% else %}
  {{ shout.who }}
  {% endifequal %}
</div>
{% endfor %}

<form action="" method="post" accept-charset="utf-8">
  <p>From: <input type="text" name="who"></p>
  <p>Message: <input type="text" name="message"></p>
  <p><input type="submit" value="Shout!"/></p>
</form>


そのまんまー
Djangoのテンプレートは便利だぁ(゚Д゚)