python - 为什么会失败? (谷歌应用程序引擎数据存储,Python)

标签 python google-app-engine

  1 from google.appengine.ext import webapp
  2 from google.appengine.ext.webapp.util import run_wsgi_app
  3 from google.appengine.ext import db
  4 
  5 a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count
  6 
  7 print 'Content-Type: text/plain'
  8 print ''
  9 print str(a)+'blah blah'

表“Store”存在。

错误是:

Traceback (most recent call last):
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 3245, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 3186, in _Dispatch
    base_env_dict=env_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 531, in Dispatch
    base_env_dict=base_env_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2410, in Dispatch
    self._module_dict)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2320, in ExecuteCGI
    reset_modules = exec_script(handler_path, cgi_path, hook)
  File "/opt/google-appengine/google/appengine/tools/dev_appserver.py", line 2216, in ExecuteOrImportScript
    exec module_code in script_module.__dict__
  File "/home/jck/bitsconv/bitsconv.py", line 5, in <module>
    a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count()
  File "/opt/google-appengine/google/appengine/ext/db/__init__.py", line 2298, in __init__
    model_class = class_for_kind(self._proto_query._entity)
  File "/opt/google-appengine/google/appengine/ext/db/__init__.py", line 266, in class_for_kind
    raise KindError('No implementation for kind \'%s\'' % kind)
KindError: No implementation for kind 'Store'

最佳答案

您需要为“Store”定义一个模型。即使您已成功将数据作为存储行获取到数据存储中,当模型类不存在时,此操作也会失败。

我通过在工作应用程序中重命名我的模型类之一来验证这一点,该应用程序存储了该类型对象的数据。它引发了相同的异常,所以我猜这也是您问题的原因。将其添加到应用程序中的某个位置,然后查看它是否更改了错误:

class Store(db.Model):
    pass

此外,这不会导致错误,但 count 实际上是一种方法。你应该使用这个:

a = db.GqlQuery('SELECT * FROM Store WHERE count = True').count()

关于python - 为什么会失败? (谷歌应用程序引擎数据存储,Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5365454/

相关文章:

python - 树或图收缩

python - Gstreamer,如何从(rtmpsink)错误中恢复

python - 合并两个具有部分列名称匹配的数据框

python - Networkx 随机几何图限制节点在半径 r 内

python - 优化 Jinja2 环境创建

python - Reportlab 不在 Google App Engine 上的 Django 应用程序中生成图表

python - 光标在 App Engine 上返回 fetch() 而不是 run()

python - 针对不同输入大小的 Keras 图像分类

python - 抓取网页时如何处理未知编码?

java - 处理空值