Flask отправка переменных данных на python через url_for () - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу отправить значение переменной в python из flask html / js через url_for ().

Python Код:

@app.route('/video_feed/<device>')
def video_feed(device):
    # return the response generated along with the specific media
    # type (mime type)
    print(device)
    try:
        return Response(gen(int(device)),mimetype = "multipart/x-mixed-replace; boundary=frame")
    except Exception as e:
        return Response(gen(device),mimetype = "multipart/x-mixed-replace; boundary=frame")

Требуется в flask html file:

data.value = 0;
image.src = "{{ url_for('video_feed', device=data.value)}}";

Но это не работает, я получаю ошибку:

jinja2.exceptions.UndefinedError: 'data' is undefined

Это работает, однако я не могу использовать переменные данные .value в url_for ():

image.src = "{{ url_for('video_feed', device=0)}}";

Я пробовал несколько разных вещей, таких как:

image.src = "{{ url_for('video_feed', device=${data.value})}}";
image.src = "{{ url_for('video_feed', device=$data.value)}}";
image.src = "{{ url_for('video_feed', device=%s)}}", data.value;

Но, похоже, ничего не работает. Мой javascript немного ржавый.

Любая помощь будет признательна!

Ура!

1 Ответ

1 голос
/ 27 февраля 2020

url_for разворачивается на стороне сервера до того, как страница отправляется в браузер, и задолго до запуска JavaScript.

Если вы знаете число (для device / data.value) во время генерации страницы передайте его в шаблон с помощью render_template().

Если, однако, вы не знаете значение до тех пор, пока страница не будет отрисована, вам нужно будет создать img элемент из JavaScript.

...