2016-11-06 115 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

相關問題