使用GAE远程api从localhost进行调试-连接太晚



尝试使用Google App Engine的remote_api,以便我们可以通过IDE进行逐行调试。

远程api一开始工作得很好。该应用程序能够成功地从数据库中检索信息。当wepapp响应客户端浏览器时,会发生错误。

代码:

它与应用程序引擎文档中给出的示例非常相似:

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调试服务器?

Traceback(最近一次通话最后一次):文件"C:\Program Files(x86)\Google\appengine\Google\appengine \tools\dev_appserver.py",第2795行,在_HandleRequest中login_url)文件"C:\Program Files(x86)\Google\appengine\Google\appengine \tools\dev_appserver.py",第3622行,在CreateImplicitMatcher中get_blob_storage)文件"C:\Program Files(x86)\Google\appengine\Google\appengine \tools\dev_appserver_blobstore.py",第420行,在CreateUploadDispatcher中return UploadDispatcher()文件"C:\Program Files(x86)\Google\appengine\Google\appengine \tools\dev_appserver_blobstore.py",第307行,位于__init__get_blob_storage())GetBlobStorage中的文件"C:\Program Files(x86)\Google\appengine\Google\appengine \tools\dev_appserver_blobstore.py",第79行return apiproxy_stub_map.apiproxy.GetStub('lobstore').storageAttributeError:"RemoteStub"对象没有属性"storage">

是否应该在代码中的其他地方初始化远程api?

还是这个问题与其他事情有关?

非常感谢!

要实现这一点,您可以使用测试台的帮助来启动丢失的存根:

ADDRESS=....
remote_api_stub.ConfigureRemoteApi(None, '/_ah/remote_api', auth_func, ADDRESS)
# First, create an instance of the Testbed class.
myTestBed = testbed.Testbed()
# Then activate the testbed, which prepares the service stubs for use.
myTestBed.activate()
# Next, declare which service stubs you want to use.
myTestBed.init_blobstore_stub()
myTestBed.init_logservice_stub()

相关内容

  • 没有找到相关文章