Отправьте изменения пользователя в раскрывающуюся таблицу html и верните измененные строку и столбец (Flask / html) - PullRequest
0 голосов
/ 24 февраля 2020

Я создал ниже html таблицу с выпадающими списками, но мне нужна помощь о том, как сохранить изменения, сделанные пользователями, и как отслеживать эти изменения.

enter image description here

Было бы замечательно, если бы можно было создать файл таблицы / xlsx для отслеживания изменений после того, как пользователь выбрал кнопку отправки, как показано ниже:

enter image description here

Код для создания таблицы 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>

Заранее спасибо!

С уважением,

...