Flask - jExcel - динамически добавлять данные - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть приложение Flask, которое использует jExcel .Моя цель - динамически добавлять данные в формате json в таблицу.Я не уверен, как мне отформатировать мой словарь, который передается как объект json в JExcel.

У меня есть страница index.html, которая отображает таблицу JExcel.Я передаю три аргумента index.html:

  • spreadsheet_id: идентификатор для Jexcel div
  • column: определения заголовков столбцов
  • url: URL-адрес, указывающий на содержимое таблицы (в формате json)

В настоящее время таблица содержит только один столбец, и я хотел бы пропустить одну запись через точку входа get_data.

PS: Я обнаружил, что мне нужно вставить сценарии в начале тела.В противном случае таблица не будет обработана.

app.py

from flask import Flask, render_template, jsonify
from flask_bootstrap import Bootstrap

app = Flask(__name__)

bootstrap = Bootstrap(app)

@app.route('/')
def index():
    struct = '''[{type: 'text', title: 'car', width: 120}]'''
    return render_template('index.html', struct=struct, url='/get_data')


@app.route('/get_data', methods=['GET', 'POST'])
def get_data():
    data = [{'text': 'Jazz'}, {'text': 'test'}]
    return jsonify(data)


if __name__ == '__main__':
    app.debug=True
    app.run()

Index.html

{% extends "bootstrap/base.html" %}

{% block title %}JExcel{% endblock %}

<div class="container">

<!-- jQuery -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- jQuery -->

<!-- JExcel -->
<script src="https://bossanova.uk/jexcel/v3/jexcel.js"></script>
<link rel="stylesheet" href="https://bossanova.uk/jexcel/v3/jexcel.css" type="text/css" />

<script src="https://bossanova.uk/jsuites/v2/jsuites.js"></script>
<link rel="stylesheet" href="https://bossanova.uk/jsuites/v2/jsuites.css" type="text/css" />
<!-- JExcel -->


<div id={{ spreadsheet_id }}></div>

<script>
var url = "{{ url }}"
var columns = {{columns }};
var spreadsheet_id = {{ ("#" ~ spreadsheet_id)|tojson }}

$(spreadsheet_id).jexcel({ url:url, columns: columns });

</script>

{% endblock %}
...