Обновите Javascript с результатами из скрипта Python

Обновите Javascript с результатами из сценария Python.

Я хочу обновить свой скрипт Javascript скриптом Python в Flask.

Я получаю значение из своего сценария Python и хочу передать его или обновить Javascript. Но не могу понять, как в Flask.

Ниже приведен мой Javascript, который мне нужно обновить:

events: {
load: function() {

// set up the updating of the chart each second
var series = this.series[0];
setInterval(function() {
var x = (new Date()).getTime();

// Value from Python script (DataFrame)
var y = Math.random() * 100;
series.addPoint([x, y], true, true);
 }, 5000);
 }
 }

Здесь я передаю случайные значения, но хочу передать значение из моего сценария Python. Мой скрипт Python будет выглядеть следующим образом:

import MySQLdb
import pandas.io.sql as sqlio

host = "~~~" # Public
port = 1111
username = "aa"
password = "aaa"
database = "aaaa"

conn = MySQLdb.connect(host=host,
 user=username,
 passwd=password,
 db=database,
 port=port)


qry1 = """
~~
"""

df = sqlio.read_sql(qry1, conn)
df['count'][0] # return some number in Python

функции. Я знаю, что ты выиграл

1 ответ

Если я правильно догадываюсь, вы хотите, чтобы код javascript имел число в нем, которое генерируется скриптом python. Если вы используете Flask, тогда вы, вероятно, используете Jinja2, верно?

Когда запрашивается страница с указанным javascript и вы отправляете ее с помощью render_template(), вы можете передать аргумент ключевого слова в render_template, содержащий это значение, а затем в шаблоне вы можете "эхо" передать это значение переменной в javascript. Например, если у вас был подходящий javascript в шаблоне page.html в каталоге шаблонов и была функция python для вычисления значения, называемого compute_value

@app.route("/page")
def page():
 value = compute_value()
 return render_Template('page.html', value = value)

Затем в page.html вы можете получить это

var y = {{ value }}

Поэтому в некотором смысле вы создаете код javascript из python с Jinja2.

licensed under cc by-sa 3.0 with attribution.