ラベル googleapp engine の投稿を表示しています。 すべての投稿を表示
ラベル googleapp engine の投稿を表示しています。 すべての投稿を表示

2008年5月13日

GAE

Google App Engineのアカウントもらったあたりから、忙しさにかまけてほったらかしになってた。
いまさらだけど、いろいろやろうと思う。

Pylons動かそうかとも思ったけど、とりあえず用意されているフレームワークを試してみる。
とはいえ、かったるい部分はまとめておこう。
メモ代わりに貼り付け。

from google.appengine.ext import webapp
from google.appengine.api import users
from google.appengine.ext.webapp import template
from google.appengine.ext import db

import model
import os

templates_dir = os.path.join(os.path.dirname(__file__), "templates")

def render(name, **vars):
path = os.path.join(templates_dir, name)

return template.render(path, vars)

def secure(method):
def wrap(self, *args, **kwargs):
user = users.get_current_user()
if user:
return method(self, *args, **kwargs)
else:
self.redirect(users.create_login_url(self.request.uri))
return wrap

def expose(template):
def decorator(method):
def wrap(self, *args, **kwargs):
self.response.headers['Content-Type'] = 'text/html;charset=utf-8'
data = method(self, *args, **kwargs)
body = render(template, **data)
self.response.out.write(body)
return wrap
return decorator


認証デコレータと、テンプレートレンダラ
あと、テンプレート呼び出しを簡単にするレンダラ。
exposeは、まあBuffetの劣化コピーだが、とりあえずwebapp.RequestHandlerにあわせてある。
テンプレートはとっととTempitaに変更することにしよう。
Blogged with the Flock Browser