Почему JS не читает данные из Jinja? - PullRequest
0 голосов
/ 05 мая 2020

Я действительно новичок в Flask, и я столкнулся с этой проблемой, когда пытался передать данные из Python Flask в JS во внешнем интерфейсе:

app.py

@app.route("/",methods=['POST', 'GET'])    
def search():
    data = {"username": "test", "site": "stackoverflow.com"}
    return render_template('search.html',data=data)

поиск. html

<html>
    <head>
    <script type="text/javascript" src="{{url_for('static', filename='js/search.js')}}"></script>
    </head>
    <body>
    </body>
</html>

поиск. js

console.log(data) 

и результат, который я получил с консоли, был

ReferenceError: data is not defined

Я проверил этот вопрос , и я попытался решить проблему в этом случае. В чем здесь основная проблема? Это проблема синтаксиса? Или проблема с форматированием данных?

1 Ответ

0 голосов
/ 05 мая 2020

В вашем html вы должны использовать свой data, выполняя приведение к json, как объяснено @ PGHE.

Чтобы иметь возможность использовать свои данные с минимальными изменениями в коде, вы должен изменить ваш поиск. html на:

<html>
  <head>
  <script>
    const jsondata = JSON.parse('{{ data | tojson | safe}}');
    console.log(jsondata) //should show your data
  </script>
  </head>
  <body>
  </body>
</html>

Здесь это встроенный javascript внутри html, но вы можете сделать это внутри своего файла

...