インタラクティブなコンソールで紹介されている「appengine_console.py
」を今現在使えるように書き換えました。
事前準備として、app.yaml
に以下を追加。
handlers: - url: /remote_api script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py login: admin
#appengine_console.py import os, sys, code, getpass # append path #C:\\google_appengine #C:\\google_appengine\lib\webob #C:\\google_appengine\lib\django #C:\\google_appengine\lib\yaml\lib gae_path = 'C:\\google_appengine' sys.path = [gae_path, os.path.join(gae_path,'lib','webob'), os.path.join(gae_path,'lib','django'), os.path.join(gae_path,'lib','yaml','lib')] + sys.path from google.appengine.ext import db from google.appengine.ext.remote_api import remote_api_stub def auth_func(): return raw_input('Username:'), getpass.getpass('Password:') if len(sys.argv) < 2: print 'Usage: %s app_id [host]' % (sys.argv[0],) else: arg2 = len(sys.argv) > 2 and sys.argv[2] app_id = sys.argv[1] host = 'localhost:8080' if arg2 else '%s.appspot.com' % app_id remote_api_stub.ConfigureRemoteDatastore(app_id, '/remote_api', auth_func, host) code.interact('App Engine interactive console for %s%s' % (app_id,' @local' if arg2 else ''), None, locals())
本番データストアにアクセスできるだけでなく、ホストをローカルに設定すれば、当然ローカルのサーバーにもアクセスできるようになるだろうと思い試したらできたので、第3引数に
True
と評価される値を渡してやれば、ローカルサーバーにアクセスするよう修正した。gae_path
、ポート番号は適宜置き換えて下さい。Usage
python appengine_console.py app_id [host]
[host]
に何も渡さなければ本番サーバーに、True
を渡すとローカルサーバーにアクセスすることになる。remote_api
オモシロイ。でもその話はまた気が向いたら。
0 Comments:
コメントを投稿