Я создаю веб-сайт с использованием Django, я взял фрейм данных pandas, сохранил его как переменную шаблона и передал его в запрос рендеринга. Я хотел бы сделать некоторые элементы формы столбцов, но мне не удалось это сделать.
Я уже пытался применить функцию к фрейму данных pandas, чтобы добавить надлежащий HTML для каждого элемента в столбце. Тем не менее, сам HTML отображается на самом сайте.
Вот мой код Python:
def optimizer(request):
df = Optimizer.get_daily_roster('E:\website\optimizer\Predictions.csv')
df = df.drop(columns=['Name + ID', 'Game Info', 'Unnamed: 0', 'Unnamed: 0.1', 'name'])
df = df.rename(columns={'TeamAbbrev': 'Team', 'AvgPointsPerGame': 'Predicted FP'})
df['Predicted FP'] = df['Predicted FP'].apply(lambda x: round(float(x), 2))
df['Predicted FP'] = df['Predicted FP'].apply(lambda x: "<input type='text' value=" + str(x) + ">")
df['Min Exposure'] = 0
df['Max Exposure'] = 1
# cols_to_values = df.to_dict(orient='list')
# cols_to_values = {x.translate({32: None}): y
# for x, y in cols_to_values.items()}
html_table = df.to_html(index=False, justify='left',
classes=[
'table table-bordered table-striped table-hover table-responsive table-sm, container-fluid'])
return render(request, 'optimizer/optimizer.html', {'player_table': html_table})
А вот мой HTML:
{% extends "optimizer/base.html" %}
{% block content %}
<h1>Optimizer</h1>
<form method="post">
<input type="submit" value="Generate Lineups">
<div class="table-responsive">
{{ player_table |safe }}
</div>
</form>
{% endblock content %}
Яполучение табличных полей данных, которые говорят всю строку HTML. Например, один говорит "<input type='text' value=55.95>"
. Он должен просто сказать 55,95 и быть редактируемым полем формы.