我正在将GAE数据存储区与python一起使用,我想统计并显示两个最近日期之间的记录数。例如,在数据存储区中,两分钟前到三分钟前之间存在多少条带有时间签名的记录。
谢谢。

#!/usr/bin/env python

import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from datetime import datetime

class Voice(db.Model):
    when = db.DateTimeProperty(auto_now_add=True)


class MyHandler(webapp.RequestHandler):
    def get(self):
        voices = db.GqlQuery(
            'SELECT * FROM Voice '
            'ORDER BY when DESC')
        values = {
            'voices': voices
        }
        self.response.out.write(template.render('main.html', values))
    def post(self):
        voice = Voice()
        voice.put()
        self.redirect('/')
        self.response.out.write('posted!')

def main():
    app = webapp.WSGIApplication([
        (r'.*', MyHandler)], debug=True)
    wsgiref.handlers.CGIHandler().run(app)

if __name__ == "__main__":
    main()

最佳答案

count = db.Query().filter('when >', two_minutes_ago).filter('when <', one_minute_ago).count()


您可以在documentation中了解有关查询的更多信息。

要获取two_minutes_agoone_minute_ago的值,可以使用datetime模块:

>>> datetime.datetime.now()
datetime.datetime(2012, 4, 14, 14, 26, 18, 343269)
>>> datetime.datetime.now() - datetime.timedelta(minutes=1)
datetime.datetime(2012, 4, 14, 14, 25, 49, 860390)


在您的Python REPL中尝试一下,以使其更加熟悉。

07-24 09:34