Мне пришлось создать приборную панель, так что da sh казалось довольно простым. Но я столкнулся с множеством проблем с интеграцией с flask или django.
Поэтому мне пришлось перестроить приборную панель с django framework с plotly. js, используя plotly da sh @app.callback()
очень быстро обновлял графики. Чтобы поиздеваться над подобным поведением, я попытался использовать ajax в django и плотно. js. Несмотря на то, что работа выполняется с использованием ajax, я вижу, что есть отставание в производительности, для визуализации обновленного графика требуется 3-4 секунды.
Есть ли лучший или эффективный способ достичь аналогичной производительности da sh обратные вызовы в django / ajax? Просто потому, что каждый раз, когда мне приходится читать csv-файл во время вызова ajax, это мешает моей работе?
пример кода серверной части для ajaxcall
def itemsAjax(request):
if request.is_ajax():
itemsList = request.POST.get('items')
#itemsList = ast.literal_eval(itemsList)
#itemsList = [n.strip() for n in itemsList]
itemsList=itemsList.split(',')
daterange = request.POST.get('daterange').split('-')
franchise = request.POST.get('franchise')
startDate = dt.strptime(daterange[0].strip(),'%m/%d/%Y')
endDate = dt.strptime(daterange[1].strip(),'%m/%d/%Y')
df = at.readData()
flag = ut.determineFlag(startDate,endDate)
df = at.filter_df_daterange(df,startDate,endDate)
itemTrend_df = at.getDataForItemsTrend(df,startDate,endDate,flag)
itemTrend_plt = [{'type':'scatter',
'x' : itemTrend_df[itemTrend_df['S2PName']==item]['S2BillDate'].tolist(),
'y' : itemTrend_df[itemTrend_df['S2PName']==item]['totSale'].tolist(),
#'text' : itemTrend_df[itemTrend_df['S2PName']==item]['Hover'],
'mode' : 'markers+lines',
'name' : item
}for item in itemsList]
return JsonResponse({'itemTrend_plt':itemTrend_plt})
else:
return HttpResponse(' Not authorised!')