无法使用Google应用引擎remote_api获取生产数据库结果

时间:2010-04-25 15:13:26

标签: python google-app-engine

嘿,我正在尝试与/ remote_api一起使用我运行的django-patch应用引擎应用程序。

我想在本地的在线制作应用中选择几行。

我似乎无法设法这样做,一切都认证很好,它没有打破进口,但当我尝试取东西它只是不打印任何东西。 将测试python放在我的本地应用程序目录中。

#!/usr/bin/env python
#
import os
import sys

# Hardwire in appengine modules to PYTHONPATH
# or use wrapper to do it more elegantly
appengine_dirs = ['myworkingpath']
sys.path.extend(appengine_dirs)
# Add your models to path
my_root_dir = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, my_root_dir)

from google.appengine.ext import db
from google.appengine.ext.remote_api import remote_api_stub
import getpass


APP_NAME = 'Myappname'
os.environ['AUTH_DOMAIN'] = 'gmail.com'
os.environ['USER_EMAIL'] = 'myuser@gmail.com'

def auth_func():
 return (raw_input('Username:'), getpass.getpass('Password:'))

# Use local dev server by passing in as parameter:
# servername='localhost:8080'
# Otherwise, remote_api assumes you are targeting APP_NAME.appspot.com
remote_api_stub.ConfigureRemoteDatastore(APP_NAME,
 '/remote_api', auth_func)

# Do stuff like your code was running on App Engine
from channel.models import Channel, Channel2Operator

myresults = mymodel.all().fetch(10)
for result in myresults:

 print result.key()

它不会给出任何错误或打印任何内容。所以remote_api控制台示例谷歌得到了。当我打印myresults时,我得到[]。

1 个答案:

答案 0 :(得分:2)

App Engine补丁monkeypat the ext.db模块,破坏了类名称。您需要确保从脚本中导入App Engine补丁,以便让它有机会按照惯例进行修改,或者您不会看到任何返回的数据。