【问题标题】:Two pages, same database query, different results两个页面,相同的数据库查询,不同的结果
【发布时间】:2013-06-02 15:50:41
【问题描述】:

请帮帮我。 我正在 Python 2.7 + Google Application Engine 上编写我的学生项目。

我有下一页: / - 我有上传文件列表的主页

/delete/file_blob_key - 从数据存储中删除记录的处理程序

在两个处理程序中我都使用下一条语句:

bases = dbModels.kbEntity.all()

在“/”页面上,此语句返回数据存储区中的记录列表

在“/delete/file_blob_key”页面上,此语句返回空列表

什么问题?

处理程序:

#===============================================================================
# Handler to delete file from server by key
#===============================================================================
class DeleteHandler(webapp2.RequestHandler):
    def get(self, resource):
        base = dbModels.kbEntity.all().filter('kbKey=', resource).fetch(1)[0]
        base.delete()
        self.redirect('/')

#===============================================================================
#
#===============================================================================
class IndexHandler(webapp2.RequestHandler):
    def getAllBasesTable(self):
        bases = dbModels.kbEntity.all()
        bases.order('-kbUploadDate')
        bases = {}
        template = JE.get_template('./templates/TPLBasesTable.html')

        values = {
            'bases': bases
        }
        return template.render(values)

    def get( self ):
        self.response.headers['Content-Type'] = 'text/html'
        template = JE.get_template('./templates/TPLIndex.html')
        values = {
            'bases': self.getAllBasesTable()
        }
        html = template.render( values )
        self.response.out.write( html )

【问题讨论】:

  • 您必须为两个处理程序显示更多代码,因为如果您在两个处理程序中都有完全相同的东西,这真的没有意义..返回不同的结果,因为第二个是删除东西为什么需要显示所有实体的列表..?
  • 我在帖子中添加了处理程序

标签: google-app-engine python-2.7 google-cloud-datastore


【解决方案1】:

getAllBasesTable 的第3 行中,您将覆盖bases。所以删除bases = {},你应该会得到你想要的结果。

【讨论】:

  • 已经,但是问题没有解决。正如我在“/”处理程序中所说,我从数据存储中获取了所有记录,在 /delete/blob_key 处理程序中 - 没有
【解决方案2】:

问题解决了! 我变了

from google.appengine.ext import db

from google.appengine.ext import ndb

现在所有查询都可以正常工作了

【讨论】:

    猜你喜欢
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-23
    • 2014-08-15
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多