ページへ戻る
印刷
Google App Engine for Python
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:Google App Engine for Python をテンプレートにして作成
開始行:
*概要
Flashゲームでは以前はSharedObjectでゲームのセーブが出来た...
消えるとプレイヤーから文句を言われますし、ブラウザの設定...
そのため、最近ではブラウザゲームのゲームデータの保存はサ...
また、Webで保存したデータをアプリと共有できれば、Webのユ...
ここではゲームデータの保存のためにGoogle App Engineの使い...
*Google App Engine
Google App Engine(以下GAE)はGoogleのクラウドサービスで、...
GAEをブラウザゲームの保存に使う理由は以下の通りです。
-無料枠があり、ゲームがヒットしなければサーバー代は無料に...
-従量課金だがそれほど高価では無く、課金されたとしても、ち...
-自動でリソースがスケールするので、過負荷でサーバー自体が...
-自分でサーバーの管理をする必要は無い
ブラウザでのカジュアルゲームの場合、初期にかなりアクセス...
また、アプリのデータの共有などでも全く同じ理由が当てはま...
ただし、もちろん問題もあります。
-他のサーバーに後から移したくなってもそのままでは無理である
-ちゃんと課金額が大きくならないような調整をしていないとそ...
-集計や並べ替えといった処理が難しい
-はじめから負荷が高く一定であることが分かっているならサー...
-swfなど、容量の大きな静的ファイルは普通のサーバーに置い...
しかし、これらの問題はほとんどの場合、サーバー側の処理が...
*言語
対応している言語はJavaやPython、PHP、Goなどいろいろありま...
それ以外の言語については分かりませんが、Goは最近の言語でP...
カジュアルゲームのデータの保存程度ならPythonをお勧めしま...
大規模開発ならJavaのような厳密な型定義やクラスのある言語...
また、ひょっとすると最近は改善されているかも知れませんが...
また、Pythonは海外では非常によく使われている歴史のある言...
言語自体の習得は簡単です。Pythonは教育用でも使われている...
*チュートリアル
**サーバー構成
GAEは転送量に応じて課金があるので、Flashゲームのように容...
GAEへはcrossdomain.xmlを使ってアクセス可能にしておきます。
こうすることで、万一アクセス数が予想以上に増えたときにもs...
そんな事を気にするほどのアクセスが無かった、という場合に...
**Google App Engine Launcher
GAE for pythonの開発にはGoogleの配布しているSDKを使います...
https://cloud.google.com/appengine/downloads
こちらでインストーラが配布されているので、インストールし...
**Eclipse
開発用のエディタとしてEclipseを使います。理由は他の言語の...
また、GoogleはGAEに対応したeclipse用のプラグイン「[[Googl...
Eclipseのインストールについては「Eclipse インストール」...
ちなみにEclipseはデフォルト設定だと結構遅いので、非力なパ...
**PyDev
PyDevはEclipseのプラグインとして動作するPython統合環境で...
http://pydev.org/
Pythonのコード補完などがそれなりに使えるようになり、GAE用...
Eclipseへのインストールは「Help」から「Install New Softwa...
&ref(pydevInstall.png,mw:480,mh:360);
Pydevを選択し、画面の指示通り進み規約などにも同意してイン...
**Hello World
ここではPydevの機能を使ってHelloWorldを表示させます。
PyDevを利用するために、Eclipse右上にパースペクティブの切...
&ref(pydevPersp.png,mw:480,mh:360);
上の画像のようにPyDevが表示されていない場合は、一番左の+...
EclipseのNewからProjectを選択します。
&ref(pydevNewProject.png,mw:480,mh:360);
ウイザード画面では「PyDev Google App Engine Project」を選...
&ref(pydevNewProjectWizard.png,mw:480,mh:360);
次にプロジェクト名を入力します。
このとき、もしGrammer Versionが2.7になっておらず、選択肢...
&ref(pydevProjectName.png,mw:480,mh:360);
次にコード補完のため、GAEのインストールディレクトリを指定...
&ref(pydevGaeLocation.png,mw:480,mh:360);
これらの設定は後で「Project」の「Properties」からでも変更...
最後にapplication idとテンプレートを指定します。applicati...
テンプレートはHello Worldを指定します。
&ref(pydevAppName.png,mw:480,mh:360);
これでHello Worldを表示するためのプロジェクトは準備できま...
&ref(gaeAddExistingProject.png,mw:480,mh:360);
さらに先ほど制作したプロジェクトを選択します。Portなどの...
&ref(gaeSelectProject.png,mw:480,mh:360);
一覧に追加したプロジェクトが現れるのでそれを選択し、Runボ...
&ref(gaeStart.png,mw:480,mh:360);
無事起動したらBrowseボタンが選択可能となるので押します。
&ref(gaeBrowse_0.png,mw:480,mh:360);
ブラウザでHello Worldが表示されるはずです。
***Hello Worldプロジェクトの解説
では作成されたプロジェクトの内容を見ていきましょう。最初...
application: hello-world-app
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
最初の行はアプリケーションのIDです。実際にGoogleに登録す...
versionはアプリのバージョンを表します。GAEでは公開したア...
もし、versionを変えずにサーバーに登録するとソースコードが...
runtimeは使っている言語環境です。ここではそのまま、python...
threadsafe: [true | false]
trueだとリクエストが同時に処理され、falseだとシリアルに処...
api_versionはGAEのAPIのバージョンです。現在は1しか無いよ...
handlersはアクセスしてきたURLをどのスクリプトで処理するか...
この例はかなり単純ですが、これ以外にもスレッドの管理方法...
また、GAE Launcherのログボタンを押すと、エラーメッセージ...
つぎにhelloworld.pyですが、こちらは簡単です。
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
1行目はヘッダでContent-Typeにtextを指定、2行目は改行、3行...
以上がHello Worldプロジェクトの内容です。実際の開発ではフ...
もちろん、これらのファイルをEclipse以外のテキストエディタ...
次「[[Google App Engine for Python その2]]」でGAEでデー...
終了行:
*概要
Flashゲームでは以前はSharedObjectでゲームのセーブが出来た...
消えるとプレイヤーから文句を言われますし、ブラウザの設定...
そのため、最近ではブラウザゲームのゲームデータの保存はサ...
また、Webで保存したデータをアプリと共有できれば、Webのユ...
ここではゲームデータの保存のためにGoogle App Engineの使い...
*Google App Engine
Google App Engine(以下GAE)はGoogleのクラウドサービスで、...
GAEをブラウザゲームの保存に使う理由は以下の通りです。
-無料枠があり、ゲームがヒットしなければサーバー代は無料に...
-従量課金だがそれほど高価では無く、課金されたとしても、ち...
-自動でリソースがスケールするので、過負荷でサーバー自体が...
-自分でサーバーの管理をする必要は無い
ブラウザでのカジュアルゲームの場合、初期にかなりアクセス...
また、アプリのデータの共有などでも全く同じ理由が当てはま...
ただし、もちろん問題もあります。
-他のサーバーに後から移したくなってもそのままでは無理である
-ちゃんと課金額が大きくならないような調整をしていないとそ...
-集計や並べ替えといった処理が難しい
-はじめから負荷が高く一定であることが分かっているならサー...
-swfなど、容量の大きな静的ファイルは普通のサーバーに置い...
しかし、これらの問題はほとんどの場合、サーバー側の処理が...
*言語
対応している言語はJavaやPython、PHP、Goなどいろいろありま...
それ以外の言語については分かりませんが、Goは最近の言語でP...
カジュアルゲームのデータの保存程度ならPythonをお勧めしま...
大規模開発ならJavaのような厳密な型定義やクラスのある言語...
また、ひょっとすると最近は改善されているかも知れませんが...
また、Pythonは海外では非常によく使われている歴史のある言...
言語自体の習得は簡単です。Pythonは教育用でも使われている...
*チュートリアル
**サーバー構成
GAEは転送量に応じて課金があるので、Flashゲームのように容...
GAEへはcrossdomain.xmlを使ってアクセス可能にしておきます。
こうすることで、万一アクセス数が予想以上に増えたときにもs...
そんな事を気にするほどのアクセスが無かった、という場合に...
**Google App Engine Launcher
GAE for pythonの開発にはGoogleの配布しているSDKを使います...
https://cloud.google.com/appengine/downloads
こちらでインストーラが配布されているので、インストールし...
**Eclipse
開発用のエディタとしてEclipseを使います。理由は他の言語の...
また、GoogleはGAEに対応したeclipse用のプラグイン「[[Googl...
Eclipseのインストールについては「Eclipse インストール」...
ちなみにEclipseはデフォルト設定だと結構遅いので、非力なパ...
**PyDev
PyDevはEclipseのプラグインとして動作するPython統合環境で...
http://pydev.org/
Pythonのコード補完などがそれなりに使えるようになり、GAE用...
Eclipseへのインストールは「Help」から「Install New Softwa...
&ref(pydevInstall.png,mw:480,mh:360);
Pydevを選択し、画面の指示通り進み規約などにも同意してイン...
**Hello World
ここではPydevの機能を使ってHelloWorldを表示させます。
PyDevを利用するために、Eclipse右上にパースペクティブの切...
&ref(pydevPersp.png,mw:480,mh:360);
上の画像のようにPyDevが表示されていない場合は、一番左の+...
EclipseのNewからProjectを選択します。
&ref(pydevNewProject.png,mw:480,mh:360);
ウイザード画面では「PyDev Google App Engine Project」を選...
&ref(pydevNewProjectWizard.png,mw:480,mh:360);
次にプロジェクト名を入力します。
このとき、もしGrammer Versionが2.7になっておらず、選択肢...
&ref(pydevProjectName.png,mw:480,mh:360);
次にコード補完のため、GAEのインストールディレクトリを指定...
&ref(pydevGaeLocation.png,mw:480,mh:360);
これらの設定は後で「Project」の「Properties」からでも変更...
最後にapplication idとテンプレートを指定します。applicati...
テンプレートはHello Worldを指定します。
&ref(pydevAppName.png,mw:480,mh:360);
これでHello Worldを表示するためのプロジェクトは準備できま...
&ref(gaeAddExistingProject.png,mw:480,mh:360);
さらに先ほど制作したプロジェクトを選択します。Portなどの...
&ref(gaeSelectProject.png,mw:480,mh:360);
一覧に追加したプロジェクトが現れるのでそれを選択し、Runボ...
&ref(gaeStart.png,mw:480,mh:360);
無事起動したらBrowseボタンが選択可能となるので押します。
&ref(gaeBrowse_0.png,mw:480,mh:360);
ブラウザでHello Worldが表示されるはずです。
***Hello Worldプロジェクトの解説
では作成されたプロジェクトの内容を見ていきましょう。最初...
application: hello-world-app
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: helloworld.py
最初の行はアプリケーションのIDです。実際にGoogleに登録す...
versionはアプリのバージョンを表します。GAEでは公開したア...
もし、versionを変えずにサーバーに登録するとソースコードが...
runtimeは使っている言語環境です。ここではそのまま、python...
threadsafe: [true | false]
trueだとリクエストが同時に処理され、falseだとシリアルに処...
api_versionはGAEのAPIのバージョンです。現在は1しか無いよ...
handlersはアクセスしてきたURLをどのスクリプトで処理するか...
この例はかなり単純ですが、これ以外にもスレッドの管理方法...
また、GAE Launcherのログボタンを押すと、エラーメッセージ...
つぎにhelloworld.pyですが、こちらは簡単です。
print 'Content-Type: text/plain'
print ''
print 'Hello, world!'
1行目はヘッダでContent-Typeにtextを指定、2行目は改行、3行...
以上がHello Worldプロジェクトの内容です。実際の開発ではフ...
もちろん、これらのファイルをEclipse以外のテキストエディタ...
次「[[Google App Engine for Python その2]]」でGAEでデー...
ページ名: