2016-11-06 118 views
0

我正在Django中构建一个web应用程序。我有一个系统会每分钟发送一个信号给建筑物中有多少人的应用。然后,我希望能够访问建筑物(模型)的数据,例如以图表形式显示(一小时内在建筑物中的人数),或查看其中有多少人上星期三下午五点半。如何在Django模型中存储基于时间的数据?

我怎样才能建立这样一个模型,我可以根据日期/时间查找数据?

谢谢。

回答

2

你的问题实在是模糊的,所以很难给出一个详细的答复,但你总是可以尝试沿着这一线的东西:

# models.py 
class BuildingCount(models.Model): 
    number_of_people = models.IntegerField() 
    datetime_stamp = models.DateTimeField(auto_now_add=True) 

的信号。然后创建模型:

b = BuildingCount(number_of_people=x) 
b.save() 

日期时间是一个连续的字段,所以你最好在两个日期时间之间筛选,然后在特定的日期时间获取记录。这里有几个例子:

from datetime import datetime, timedelta 

# All counts in the past week 
now = datetime.now() 
one_week_ago = now - timedelta(days=7) 
results = BuildingCount.objects.filter(datetime_stamp__range=(one_week_ago, now)) 
for result in results: 
    print (result.number_of_people) 

# Last Wed 5.30pm 
# filter over a 2 min window and return the first record 
result = BuildingCount.objects.filter(datetime_stamp__range=(datetime(2016,11,2,17,29), datetime(2016,11,2,17,31))).first() 
print (result.number_of_people) 

希望这会有所帮助,相反,如果你提供更多的信息,我可能能够进一步帮助...

+0

嘿为响应感谢,我是不是太肯定我的问题的措辞。我不确定是否有合适的内置Django功能,或者是否需要插件。我喜欢你的答案,这当然是我可以做和建立的东西。你认为这样可以吗?每个建筑物有50到100个建筑物运行一年或更长时间的BuildingCounts清单(比如每天12小时的每小时)?每栋建筑物的建筑物数量为4,368,其中50座建筑物的数量为218,400。我不确定Django的这个数据是否可用? – martingrant

相关问题