Google App EngineでDjangoを使う Part3

Google App Engineで、フレームワークとしてDjangoを使うときの手順や設定などのメモその3。

App EngineはデータベースレイヤがMySQLでもSQLiteでもない(そもそもRDBではない)ので、Djangoのモデルクラスのライブラリを使用できません。App EngineのDatabase APIをラップしてDjangoのモデルクラスとして利用できるライブラリを誰かが作ったみたいですが、そこまでするほどでもないならApp Engineのモデルクラスをそのまま利用すればいいと思います。そのかわりDjangoのモデル周りの便利機能は使えません。Admin画面とか各種関数とか。

ついでにUTCからJSTに変換する応急処置のコードも追加しました。
[models.py]

import datetime
from google.appengine.ext import db

class Bookmark(db.Model):
  uri = db.StringProperty()
  title = db.StringProperty()
  pub_date = db.DateTimeProperty(auto_now_add=True)


class Comment(db.Model):
  reference = db.ReferenceProperty(Bookmark)
  comment = db.StringProperty(multiline=True)
  date = db.DateTimeProperty(auto_now_add=True)
  
  def jst_date(self):
    #UTC -> JSTを表示するための応急処置
    return self.date + datetime.timedelta(hours=9)


そんなわけでDjangoのチュートリアルがそのまま適用できない部分が多いので少し苦労しましたが、一応動くサンプルを作ってみました。

(Pythonを初めて触って2日なのでいろいろとマズいところはあると思います。あんまり参考にしない方が…)