我正在将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_ago
和one_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中尝试一下,以使其更加熟悉。