我想为一家公司做一些数据分析(销售、股票、年度进展等)。然而,我发现计算时间是巨大的(对于一个带有单线图的单页来说,几乎是1分钟)。我已经检查了查询,它们大约需要2秒钟(仍然很多,但不管怎样)。使用django调试工具栏,我看到请求呈现(我想是页面视图)大约需要50秒。你们知道我该怎么加速吗?
代码如下:
图形的主要功能:
def get_data_progression(years):
result = {}
for year in reversed(years):
result[year] = {
"uscite": 0,
"entrate": 0,
"magazzino": {
"val": 0,
"nbr": 0
},
"valorizzazione": 0,
"months": []
}
for i in range(1, 13):
entrate = 0#get_entrate_month(year, i)
uscite = 0#get_uscite_month(year, i)
m_val, m_nb = get_magazzino_month(year, i)
result[year]["months"].append({
"entrate": entrate,
"uscite": uscite,
"magazzino": m_val,
})
result[year]["entrate"] = entrate
result[year]["uscite"] = uscite
result[year]["magazzino"]["val"] = m_val
result[year]["magazzino"]["nbr"] = m_nb
result[year]["valorizzazione"] = result[year]["magazzino"]["val"] + result[year]["entrate"] - result[year]["uscite"]
return result
这就是我要优化的函数。我省略了不相关的部分:你看到的是需要50秒才能加载的内容:
def get_magazzino_month(year, month):
from magazzino.models import ddt_in_item, omaggi_item, inventario_item
from corrispettivi.models import corrispettivi_item, corrispettivi
from fatture.models import fatture_item, fatture, fatture_laboratori_item
from prodotti.models import prodotti
qt = 0
val = 0
products = prodotti.objects.all()
for prod in products:
fats = fatture_laboratori_item.objects.order_by("-id_fattura__data").filter(id_prodotti=prod, id_fattura__data__year=year).first()
prezzo = (fats.costo_acquisto/fats.quantita - ((fats.costo_acquisto/fats.quantita) * fats.sconto / 100)) if fats else prod.costo_acquisto
return val, qt
暂无答案!
目前还没有任何答案,快来回答吧!