отправлять данные на панель инструментов html во флаконе Python, имея словарь в параметре функции - PullRequest
0 голосов
/ 01 декабря 2019

Я хочу отправить данные в html в фреймворке, у меня есть функция, которая получает словарь в качестве параметра, тогда есть несколько функций, примененных к словарю. после этого окончательного результата я хочу сделать в HTML-странице. Прошло 48 часов, я пробовал из разных блогов, но не нашел точного решения.

imports ...
from other file import other_functions
from other file import other_functions_2
from other file import other_functions_3

app = Flask(__name__, template_folder='templates/')

@app.route("/dashboard")
def calculate_full_eva_web(input:dict):

   calculate_gap = other_functions(input)
   calculate_matrix = other_functions_2(input)
   average = other_functions_3(input)
   data = dict{'calculate_gap':calculate_gap, 'calculate_matrix':calculate_matrix,'average':average}

   return render_template('pages/dashboard.html', data = data) 

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

TRACEBACK Always get this error

1 Ответ

0 голосов
/ 02 декабря 2019

Методы, которые Flask может маршрутизировать, чтобы не принимать словари в качестве входных данных, и аргументы, которые они принимают, должны совпадать с шаблоном в маршруте. (См. https://flask.palletsprojects.com/en/1.1.x/api/#url-route-registrations)

Вы получите ту же ошибку, если измените

@app.route("/dashboard")
def calculate_full_eva_web(input:dict):

на

@app.route("/dashboard")
def calculate_full_eva_web(input):

Ваш путь вперед зависит от того, как вы хотите пройтиданные, когда вы делаете запрос. Вы можете передавать пары ключ / значение через параметры URL и извлекать их через объект request.args. Это может быть достаточно близко к тому, что вы хотите. (Вам нужно удалить объявление аргумента из calculate_full_eva_web())

Что-то вроде

from flask import request

@app.route('/dashboard')
def calculate_full_eva_web():
    input = request.args
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...