stubやらなんちゃらで迷ったけど、結局シンプルに解決した
環境
Mac OS Elcapitan
Python2.7
PyCharm
GoogleAppEngine SDK へのパスは既に通してあります
実装
ConfigureRemoteApi をいい感じに使う
def initialize():
try:
import dev_appserver
dev_appserver.fix_sys_path()
except ImportError:
raise
app_id = 'dev~nkapp'
os.environ['APPLICATION_ID'] = app_id
# connect to local
def auth_func():
return "[email protected]", "passwd"
from google.appengine.ext.remote_api import remote_api_stub
remote_api_stub.ConfigureRemoteApi(app_id, '/_ah/remote_api', auth_func, 'localhost:8080')
これを最初に呼んでおけば、後は自由にデータにアクセス出来る。
実用的に切り替えるならこんな感じ
# True->Local False->Remote
SETTING_CONNECT_TO_LOCAL = True
SETTING_APP_ID = 'nkapp'
SETTING_API_PATH = '/_ah/remote_api'
SETTING_LOCAL_SERVER_ADDR = 'localhost:8080'
def initialize():
app_id = SETTING_APP_ID
if SETTING_CONNECT_TO_LOCAL:
app_id = 'dev~' + SETTING_APP_ID
os.environ['APPLICATION_ID'] = app_id
try:
import dev_appserver
dev_appserver.fix_sys_path()
except ImportError:
raise
from google.appengine.ext.remote_api import remote_api_stub
if SETTING_CONNECT_TO_LOCAL:
# connect to local
def auth_func():
return "[email protected]", "passwd"
remote_api_stub.ConfigureRemoteApi(app_id, SETTING_API_PATH, auth_func, SETTING_LOCAL_SERVER_ADDR)
else:
# connect to product
# app_name-???.json
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '/path/to/token/app_name-???.json'
remote_api_stub.ConfigureRemoteApiForOAuth("%s.appspot.com" % app_id, SETTING_API_PATH, secure=True)
迷ったとこ
恥ずかしながら…. auth_func の中の [email protected] と passwd に何を設定すればいいか迷っておりました。 そのままで問題ないんですね(-ω- )
楽しいGAEライフを
ではでは