0
我正在Django中構建一個web應用程序。我有一個系統會每分鐘發送一個信號給建築物中有多少人的應用。然後,我希望能夠訪問建築物(模型)的數據,例如以圖表形式顯示(一小時內在建築物中的人數),或查看其中有多少人上星期三下午五點半。如何在Django模型中存儲基於時間的數據?
我怎樣才能建立這樣一個模型,我可以根據日期/時間查找數據?
謝謝。
我正在Django中構建一個web應用程序。我有一個系統會每分鐘發送一個信號給建築物中有多少人的應用。然後,我希望能夠訪問建築物(模型)的數據,例如以圖表形式顯示(一小時內在建築物中的人數),或查看其中有多少人上星期三下午五點半。如何在Django模型中存儲基於時間的數據?
我怎樣才能建立這樣一個模型,我可以根據日期/時間查找數據?
謝謝。
你的問題實在是模糊的,所以很難給出一個詳細的答覆,但你總是可以嘗試沿着這一線的東西:
# 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)
希望這會有所幫助,相反,如果你提供更多的信息,我可能能夠進一步幫助...
嘿爲響應感謝,我是不是太肯定我的問題的措辭。我不確定是否有合適的內置Django功能,或者是否需要插件。我喜歡你的答案,這當然是我可以做和建立的東西。你認爲這樣可以嗎?每個建築物有50到100個建築物運行一年或更長時間的BuildingCounts清單(比如每天12小時的每小時)?每棟建築物的建築物數量爲4,368,其中50座建築物的數量爲218,400。我不確定Django的這個數據是否可用? – martingrant