Я новичок в Flask и в целом по веб-разработке.У меня есть простое веб-приложение, которое отображает данные дома, когда я задаю запрос.Однако, когда я отправляю параметр из формы, отправляю данные, и диаграмма не обновляется, они полностью пустые.Как сделать обновление данных и диаграмм.Также все js находятся в статической папке.Я потратил немало времени на изучение ajax и jquery, но не повезло.Любые примеры будут оценены.
<script>
rfmchart({{ rfm_score|safe }},{{ rfm_month|safe }},15);
df_data({{ fin|safe }});
</script>
function df_data(dataset) {
$(document).ready(function() {
$('#dataTable').DataTable( {
"ordering": false,
data: dataset,
columns: [
{ title: "ID" },
{ title: "Market" },
{ title: "Sale" }
]
} );
} )
};
Функция Chart.js
// RFM Chart
var ctxx = document.getElementById("rfm_chart");
function rfmchart(val,lbs,max_tick) {
var rfm_chart = new Chart(ctxx, {
type: 'line',
data: {
labels :lbs,
datasets: [{
label: "RFM",
lineTension: 0.3,
backgroundColor: "rgba(37, 63, 131,0.7)",
borderColor: "rgba(2,117,216,1)",
pointRadius: 5,
pointBackgroundColor: "rgba(23,117,33,1)",
pointBorderColor: "rgba(255,255,255,0.8)",
pointHoverRadius: 5,
pointHoverBackgroundColor: "rgba(2,117,216,1)",
pointHitRadius: 50,
pointBorderWidth: 2,
data : val,
}],
},
options: {
scales: {
xAxes: [{
gridLines: {
display: false
},
ticks: {
maxTicksLimit: 7
}
}],
yAxes: [{
ticks: {
min: 0,
max: max_tick,
maxTicksLimit: 5
},
gridLines: {
color: "rgba(0, 0, 0, .125)",
}
}],
},
legend: {
display: false
}
}
})
};
App.py
## This works!!
@app.route('/',methods=['POST','GET'])
def home():
loc = 15158
fin = fin_data(loc)
rfm_month,rfm_score = rfm_data(loc)
return render_template('home.html',fin_data = fin,rfm_month=rfm_month,rfm_score = rfm_score)
## Does not work
@app.route('/plt',methods=['POST','GET'])
def get_plt():
if request.method=='POST':
result=request.form
loc = result['loc']
fin = fin_data(loc)
rfm_month,rfm_score = rfm_data(loc)
return render_template('home.html',fin_data = fin,rfm_month=rfm_month,rfm_score = rfm_score)
HTML
<script>
rfmchart({{ rfm_score|safe }},{{ rfm_month|safe }},15);
df_data({{ fin|safe }});
</script>