我正在开发一个有图表的网站,但是,我不想加载整个图表,我只想加载一个小的时间范围(例如:1小时或1天)
这是图表数据的dbModel:
class storage(db.Model):
feedid = db.StringProperty()
data = db.StringProperty()
date = db.DateTimeProperty(auto_now_add=True)
目前,要绘制数据图表,我运行: (feedid只选择要加载的图表)
d = storage.all()
d.filter("feedid =", feedid)
d.order('date')
for p in d.run():
#Use the data to make a graph
那么我如何更改它以仅请求某个时间帧而不是整个数据集?
我对Appengine很新,所以这可能是一个简单的问题,但感谢任何试图提供帮助的人。
答案 0 :(得分:1)
您可以使用以下查询:
import datetime
d = storage.all()
d.filter('feedid =', feedid)
d.filter('date >=', datetime.datetime(2013, 6, 1))
d.filter('date <=', datetime.datetime(2013, 6, 30))
d.order('date')
这将为您提供所有storage
日期为2013年6月的日期。
注意:如果您刚开始使用App Engine,我强烈建议您使用ndb而不是db。它具有许多优点,例如自动缓存。与ndb中的上述查询相同的查询如下:
import datetime
q = storage.query()
q = q.filter(storage.feedid == feedid)
q = q.filter(storage.date >= datetime.datetime(2013, 6, 1))
q = q.filter(storage.date <= datetime.datetime(2013, 6, 30))
q = q.order(storage.date)