Create a dataframe by reading a csv and show this in template
views.py:
class ReportView(View):
def get(self, request):
if not request.user.is_authenticated:
return HttpResponseRedirect('/login/')
output_predictions_filepath = settings.MEDIA_ROOT+'/pred_result_data/'
# if the directory doesn't exist before, create a new directory
if os.path.isfile(output_predictions_filepath + 'output.csv'):
logger.info("dir")
report_df=pd.read_csv(output_predictions_filepath + 'output.csv')
logger.info(report_df)
else:
report_df=None
logger.info("I am in report page")
row_count = report_df.shape[0]
column_count = report_df.shape[1]
column_names = report_df.columns.tolist()
final_row_data = []
for index, rows in report_df.iterrows():
final_row_data.append(rows.to_dict())
json_result = {'rows': row_count, 'cols': column_count, 'columns': column_names, 'rowData': final_row_data}
return render(request,'baseapp/report.html',{"report_df":json_result})
report.html:
<!-- src/templates/baseapp/report.html-->
{% extends 'base.html' %}
{% block content %}
<!-- <div id="report-tab">Reports</div> -->
<h1>Dengue Report</h1>
<table class="table-dark table-bordered table-striped table-sm">
<thead>
<tr>
{% for i in report_df.columns %}
<th>{{i}}</th>
{% endfor %}
</tr>
</thead>
{% for j in report_df.rowData %}
<tr>
{% for key, value in j.items %}
<td>{{value}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% endblock content %}
Comments
Post a Comment