1

Python で GAE データストアを使用しており、最近の 2 つの日付間のレコード数をカウントして表示したいと考えています。たとえば、2 分前から 3 分前までの間に拍子記号を持つレコードがデータストアにいくつ存在するかなどです。ありがとうございました。

#!/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()
4

2 に答える 2

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

クエリの詳細については、ドキュメントを参照してください。

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 で試して、よりよく理解してください。

于 2012-04-14T18:22:31.427 に答える
0

クエリには、日付による並べ替えをサポートする複合インデックスが必要です。これは、最近の更新が結果整合性を持つことを意味します。このため、最新の更新プログラムが表示されない場合があります。回避策についてお聞かせください。

于 2012-04-15T05:24:30.970 に答える