У меня очень конкретный c вопрос относительно flask.
Итак, история в том, что я создал линейчатую гистограмму и встроил ее в шаблон html flask (/ template). Диаграмма находится в / static / figures /. Я хотел, чтобы график был интерактивным, чтобы при нажатии на столбец графика он перенаправлял меня на другую страницу в приложении flask. Я попытался связать это с внешней сетью (et c. www.google.com), и это работает. Но когда я попробовал <a href ="{{url_for(home}}"
, это выдает мне ошибку. Есть какой-либо способ сделать это? или мне действительно нужно создать таблицу и гистограмму с нуля, используя html css? Любой вклад будет высоко ценится! Вот фрагменты кода:
Установка ссылки вручную:
table = pd.DataFrame(columns=['brand','asin','bbcurrent','bbprior','bbvar','selcurrent','selprior','selvar','violcurrent','violprior','violvar','salescurrent','salesprior','salesvar','unitcurrent','unitprior','unitvar','pricecurrent','priceprior','pricevar'])
table = table.append({'brand':brand,'asin':'''<a href="{{ url_for('home') }}">'''+asin+'''</a>''',
'bbcurrent':nsc.as_percentage(bbcurrent),'bbprior':nsc.as_percentage(bbprior),'bbvar':bbvar,
'selcurrent':selcurrent,'selprior':selprior,'selvar':selvar,
'violcurrent':violcurrent,'violprior':violprior,'violvar':violvar,
'salescurrent':nsc.as_currency(salescurrent),'salesprior':nsc.as_currency(salesprior),'salesvar':salesvar,
'unitcurrent':nsc.as_commas(unitcurrent),'unitprior':nsc.as_commas(unitprior),'unitvar':unitvar,
'pricecurrent':nsc.as_currency(pricecurrent),'priceprior':nsc.as_currency(priceprior),'pricevar':pricevar},ignore_index=True)
создание графика:
fig.add_trace(go.Table(
columnwidth = [90,100,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60],
header=dict(values=[['','<b> Brand </b>'],
['','<b>ASIN</b>'],
['Buy Box %','Current'],
['','Prior'],
['','Var'],
['Seller Violations','Current'],
['','Prior'],
['','Var'],
['Number of Violations','Current'],
['','Prior'],
['','Var'],
['Lost Sales','Current'],
['','Prior'],
['','Var'],
['Seller Inventory (units)','Current'],
['','Prior'],
['','Var'],
['Seller Inventory ($) ','Current'],
['','Prior'],
['','Var']],align="left",font=dict(family="Arial",size=12),fill_color='#F9F9FF'),
cells=dict(values = [table.brand,table.asin
,table.bbcurrent,table.bbprior,table.bbvar,
table.selcurrent,table.selprior,table.selvar,
table.violcurrent,table.violprior,table.violvar,
table.salescurrent,table.salesprior,table.salesvar,
table.unitcurrent,table.unitprior,table.unitvar,
table.pricecurrent,table.priceprior,table.pricevar],fill = dict(color=[['rgba(171, 248, 195, 0.49)' if row['asin'] == colored else '#EBF0F8' for index , row in table.iterrows()] ])
,align="left",font=dict(family="Arial"))),row=1,col=1)
экспорт графика:
fig.write_html('test1.html', config={ "displayModeBar" : False} )
Настройка маршрута и доставка пи c до html:
@app.route('/test', methods=['GET', 'POST'])
@login_required
def test():
figtest = gp.productviolationgraph(currdflandschour ,prevdflandschour,currsellersales,currsellersales,"B07S5XZDR9",0)
return render_template('seller.html',testsellerviolation = figtest)
, наконец, рендеринг в продавце. html:
<embed style= " margin-top:-20px; margin-right:20px; width:100%; height:70vh; overflow:hidden;" src={{testsellerviolation}}>
График рендеринга красиво внутри flask но ссылка не работает. Я предполагаю, что это потому, что он находится внутри папки stati c, что он не сможет перенаправить в приложение. есть ли какое-то решение для этого?
Заранее большое спасибо Stack Overflowers! :)