GAEOのscaffoldで簡単アプリ作成

Google App Engine Oilにもscaffoldがついてます。これを使うと例のごとく簡単にCRUDアプリが作れてしまいます。
データはもちろん、GAEのdatastoreに入るのでそのあたりは、作成されるコードを見るとやり方が見えてきます。

ここではタイトルとURLを登録するブックマークアプリを作ってみます。
では、gaeoコマンドでアプリを作成。

> gaeo.py myapp
> cd myapp


scaffoldを作成します

> gaeogen.py scaffold bookmarks index new show edit delete title:StringProperty(required=True) url:StringProperty(required=True)
...


これで完成。サーバ実行!

> dev_appserver.py .


http://localhost:8080/bookmarks にブラウザでアクセスする
「NEW」のリンクが表示されます。クリックするとURLとタイトルを入力する画面が表示されるので、入力してsubmitをクリック・・・

Internal Server Error
BadValueError: Property url is required

とエラーが発生がするので、myapp\application\controller\bookmarks.py をエディタで開きます

ファイルの13行目あたりにある、urlとtitleのコメントを外して

class BookmarksController(BaseController):
    def create(self):
        r = Bookmarks(
            # Uncomment all required properties here.
            url = self.params.get('url', None),
            title = self.params.get('title', None),
        )
        for prop in Bookmarks.properties():

ファイルを保存して再度、http://localhost:8080/bookmarks/new へアクセスして入力後submitをクリックすると登録されます。

データストアを見るには

登録されたローカル環境のdatastoreをみるにはhttp://localhost:8080/_ah/admin へアクセスしてListEntites ボタンをクリックします。
こんな感じ。

f:id:ramtiga:20100312201056p:image


Keyのリンクをクリックすると、データ編集画面になりますが「Save Changes」ボタンをクリックしてもエラーになります。
ローカル環境のdatastoreは編集できないようです。deleteは可能です。
また、ローカル環境のデータストアは日本語も文字化けします。
本番環境では問題なく表示されるので、確認したい場合はデプロイ後、本番環境のデータストアを確認するのがよいでしょう。

とりあえずはここまで。