私は机上のMacで研修のためのアプリケーションを開発しています。
そこでの経験をまとめておくと良いのではとおもって投稿します。
localhost:8000 => localhost:8080 => Google App Enginesと言う具合に段階を上げています。
ポートの8000はweb2py.py、8080はGAEのシミュレータでgoogle提供のSDKです。ここで開発デバッグ、試験してGoogle App Enginesで公開にアップロードして公開します。
web2py.pyでは完全なデバッグ環境があってDjangoより格段に進歩した環境が提供されます。
トレースバックのコールシーケンスの各段階の変数のスナップショットは当然ですが、adminの画面からviewやcontollerを直接呼び出せま
す。ですから分からないことがあると、k=kという文を入れてトラップさせて自分のプログラムだけでなくweb2pyの中のうごきをトレースバックして
います(本当はもっとスマートな方法があるかもしれませんが)。
非常に便利ですが、この段階では私はデータベースにsqliteを使っていますからアプリケーション間でデータの共有ができません。ログインしても別の
アプリケーションではuserテーブルの値が別々のデータベースになるので、認証関係の設定の確認ができません。これが難点です。しかしsqliteは
SQlite Databaseブラウザーがあるのでこれで個別のデータの確認を簡単にとれます。
データベースはシミュレータで共有できるようになります。アプリケーションで共有するテーブルをそれぞれで定義しておけばOKです。userテーブルも
共有できますから、認証の確認は確実です。
データベースのブラウジングはhttp://localhost:8080/_ah/adminで作成、閲覧して編集削除することができます。
registrationではメールによるverificationをしたいのですが、私のMacのサーバーからメールを発信する方法を知りません(ど
なたかご存知でしたら教えてください)。
いまはauth_userを/_ah/adminで開いて該当するエントリのregistration keyを取り出して、http://
localhost:8080/members/default/user/verify_email/1b0cd09d-1e4c-407a-
ae8a-536ecedd80c5とやっています。
シミュレータで一通りのデータベースアクセスをします。ここでindexテーブルを全部作っておかないとGAEが動作しません。
シミュレータで試験するのはデータが共有されておこる不都合をチェックするくらいでしょうか。
最後にGAEです。
実はGoogleAppEnginesはバージョンがあってDefaultのバージョンはhttps:xxx.appspot.comで公開されます が、それ以外のバージョンは頭にバージョン番号をつけてアクセスします。https:2.xxx.appspot.comという具合です。ここでも公開までのステップが用意されています。まぁアルファバージョン、ベータバージョンということでしょう。
バージョンはapp.yamlで指定します。appspot.comでログインすると自分のGAEのアプリケーションの空間に入れます。アプリケーションのリストがありますから、該当のアプリケーションを選択してそこのversionsでデフォールトのバージョンを設定できます。
デフォールトのアプリケーションとは、私のこのアプリケーションではmaselstyle.appspot.comで呼び出されるアプリケーションです。以前のバージョンや試験中のバージョンは、それがバージョン4とすると、4.masel-style.appspot.comです。
デフォールトは利用者がアクセスしますから、デフォールト以外で試験して、OKならば、そのバージョンをデフォールトにします。これはプログラムコード
プログラムコードのバージョンとは別にデータベースの値をnamespaceでコントロールできます。
アプリケーションのdb.pyで指定します。
if request.env.web2py_runtime_gae: # if running on Google
App Engine
db = DAL('gae://mynamespace') # connect to Google BigTable
mynamespaceはその名のとおり名前空間ですからデータベースの構造は同じでも違う値を持つことになります。
0 件のコメント:
コメントを投稿