以前 Google App Engine でモデルを JSON に変換する方法を紹介しました。
この時はわざわざ simplejson のカスタム Encoder を自作していましたが、Kay Framework を使う場合はもっと簡単な方法があります。
Kay のリポジトリに置かれている最新のソースコードには、kay.dbutils.to_dict 関数が追加されています。この関数はモデルを dict に変換するためのもの。Kay で JSON を出力したい場合は、この to_dict 関数を使うと楽です。
こんな感じ。
# -*- coding: utf-8 -*- """ core.views """ from google.appengine.ext import db from werkzeug import Response from kay import dbutils import simplejson class Task(db.Model): name = db.StringProperty() done = db.BooleanProperty(default=False) created = db.DateTimeProperty(auto_now_add=True) def index(request): tasks = Task.all() json = simplejson.dumps([dbutils.to_dict(task) for task in tasks]) return Response(json, content_type="application/json")