【发布时间】:2012-09-17 06:54:36
【问题描述】:
尝试使用 Google App Engine 的 remote_api 以便我们可以通过 IDE 进行逐行调试。
远程 api 一开始效果很好。该应用程序能够成功地从数据库中检索信息。当 wepapp 响应客户端浏览器时发生错误。
守则:
与应用引擎documentation中给出的示例非常相似:
from model import My_Entity
from google.appengine.ext.remote_api import remote_api_stub
# Test database calls
def get(w_self):
remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func, 'myapp.appspot.com')
t_entity = My_Entity.get_by_key_name('the_key')
w_self.response.set_status(200)
# The error occurs AFTER this code executes, when webapp actually responds to the browser
错误回溯:
错误似乎与 blobstore 有关。
远程 api 在代码中初始化是否为时已晚?
...在 webapp 通过 localhost 服务器对 blobstore 进行操作之后?那么远程 api 可能会将请求重定向到服务器中的 blobstore,而不是 webapp 期望的 localhost 调试服务器?
回溯(最近一次通话最后): _HandleRequest 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py”,第 2795 行 登录网址) CreateImplicitMatcher 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver.py”,第 3622 行 get_blob_storage) CreateUploadDispatcher 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_blobstore.py”,第 420 行 返回 UploadDispatcher() __init__ 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_blobstore.py”,第 307 行 get_blob_storage()) GetBlobStorage 中的文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\tools\dev_appserver_blobstore.py”,第 79 行 返回 apiproxy_stub_map.apiproxy.GetStub('blobstore').storage AttributeError:“RemoteStub”对象没有属性“存储”是否应该在代码中的其他地方初始化远程 api?
还是这个问题与其他问题有关?
非常感谢!
【问题讨论】:
-
您是否在 HTTP 获取处理程序中使用了 remote_api?
-
您可能希望在服务器启动时初始化远程 api 一次,而不是在每次请求时初始化一次。
-
@dragonx - 这听起来更好。你现在应该把它放在 GAE 代码的什么地方吗?
-
可能在您的应用启动和您初始化 webapp 的任何地方。
标签: python google-app-engine webapp2 remoteapi