Я создал ниже html таблицу с выпадающими списками, но мне нужна помощь о том, как сохранить изменения, сделанные пользователями, и как отслеживать эти изменения.
Было бы замечательно, если бы можно было создать файл таблицы / xlsx для отслеживания изменений после того, как пользователь выбрал кнопку отправки, как показано ниже:
Код для создания таблицы html с выпадающими меню выглядит следующим образом:
account = pd.Series(["Petty cash", "Lucky Money", "RBC USD"])
amount = pd.Series([-2.59, 1111111, 66170.97])
mapping = pd.Series(["Debt", "Equity", "Cash"])
mapping2 = pd.Series(["Yes", "Yes", "No"])
choices_ori = (("Cash", "Cash"), ("Hi", "Hi"),("Debt", "Debt"), ("Equity", "Equity"))
choices2_ori = (("Yes","Yes"), ("No","No"))
data = pd.DataFrame({
"Account Description": account,
"Amount": amount,
"mapping": mapping,
"mapping2": mapping
})
@app.route('/', methods=['GET', 'POST'])
def index():
return render_template('index.html',
column_names=test.columns.values,
rows=test.to_dict('records'),
link_column="mapping",
link_column2 = 'mapping2',
choices = choices_ori,
choices2 = choices2_ori
)
if __name__ == "__main__":
app.run(debug=True)
с индексом. html как:
<html>
<head>
<title>Dataframe in Flask template</title>
</head>
<body>
<div>
<h2>Mapped data</h2>
<table id="Mapped table" border="1">
<tr>
{% for col in column_names %}
<th>{{col}}</th>
{% endfor %}
</tr>
{% for row in rows %}
<tr>
{% for key, val in row.items() %}
{% if key == link_column %}
<td>
<select class="dropbtn">
{% for choice in choices %}
<option value={{ choice[0] }}
{% if choice[0] == val %} selected {% endif %}>
{{ choice[1] }}
</option>
{% endfor %}
</select>
{% elif key == link_column2 %}
<td>
<select class="dropbtn">
{% for choice in choices2 %}
<option value={{ choice[0] }}
{% if choice[0] == val %} selected {% endif %}>
{{ choice[1] }}
</option>
{% endfor %}
</select>
</td>
{% else %}
<td>
{{ val }}
</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</table>
</div>
<button class="button execute" name="submit" value="submit">Submit</button>
</body>
</html>
Заранее спасибо!
С уважением,