Google App Engineのdatastoreの特性上、key valueストアとして扱わないとパフォーマンスが出ません(=お金がかかります)。
key部分は複合機キーにし、変更可能なレコードとインデクスレコードのみ、通常のレコードとします。
model_mixinにmodel属性としてアクセスできるmethodを書きます。
$ cd $GAE_HOME/lib/endpoints-1.0/endpoints
$ patch -p0 -i patch.diff
google.appengine.toolsに含まれるdev_appserverがold_dev_appserverへ変更になりました。
> from google.appengine.tools import dev_appserver
E ImportError: cannot import name dev_appserver
test実行時に上記エラーが出る場合は、最新版のpytest_gaeにupdateしてください。
(timecard-gae)$ pip install --upgrade https://bitbucket.org/MiCHiLU/pytest_gae/get/default.zip
- doc
- gae / Google App Engine / Python のプロジェクトルート
- locales
- main_api
- oauth_config
- site-packages
- static
- static_root
- マルチテナント対応静的ファイル。robots.txtなど
- tap
- templates
- Jinja2形式のテンプレートファイル。hamlで書く
- tests
- api.py
- Google Cloud Endpointsのエントリーポイント
- app.yaml
- Google App Engine / Pythonの設定ファイル
- appengine_config.py
- cron.yaml
- Google App Engineのcron設定ファイル
- index.yaml
- Google App EngineのDatastoreインデックス設定ファイル
- queue.yaml
- Google App EngineのTaskQueue設定ファイル
- .gitignore
- .watchlion.yaml
- Gemfile
- Makefile
- README.md
- package.json
- packages-gae.txt
- Pythonパッケージ関連のファイル(プロダクション用)
- packages-tap-develop.txt
- packages.txt
- datastore.db
- Google App Engine 開発用サーバのデータベースファイル
- htmlcov
- node_modules
- gae / Google App Engine / Python のプロジェクトルート
- static_root.zip
- マルチテナント対応静的ファイルをデプロイ用にzipで固めたもの
$ git clone https://github.com/MiCHiLU/timecard-gae.git
$ cd timecard-gae
$ bundle install
$ npm install
$ mkvirtualenv --python=`which ptyhon2.7` timecard-gae
$ workon timecard-gae
(timecard-gae)$ pip install -r packages.txt
(timecard-gae)$ pip install -r packages-gae.txt
(timecard-gae)$ はPython仮想環境が有効になっていることを示すプロンプトです。
Python開発環境に関する詳細は次のサイトを参照してください。
- Autobahn for the fastest way to scalable Python
Docker imageを取得できます。
$ docker pull michilu/fedora-timecard-gae
起動したdockerコンテナ内で、例えば次のように操作してみてください。
$ cd /timecard-gae
$ make test
(timecard-gae)$ make test
CIの状況を確認するには確認するには、次のURLを参照してください。
(timecard-gae)$ make runserver
(timecard-gae)$ make deploy
(timecard-gae)$ watchlion
を実行すると、haml, coffeeなどのファイルの追加/更新を検知して自動ビルドします。
watchlionの設定は .watchlion.yaml に記述します。
- pyahooapis - Yahoo! Japan Text APIs Python Wrapper for Google App Engine NDB
- jinja2-precompiler - Pre-compile Jinja2 templates to Python byte code
- gae-tap - It's a full stack framework for the Google App Engine -based.
- Docker image michilu/fedora-zero - 120MB minimum rawhide not install anything
- Google App Engine
supermin