Отрисовка изменений в шаблонах html с использованием flask - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь использовать python flask api и javascript для создания веб-приложения. В качестве простого примера я хотел иметь поле ввода текста, которое будет печатать вводимые пользователем данные после их отправки. Однако, когда я запускаю это с помощью flask run и ввожу какой-то текст, ничего не меняется, за исключением того, что меня перенаправляют с «/ 5000» на «/ 5000 /? Input = text», где текст - это пользовательский ввод.

Почему я не вижу «Вы написали: текст» под полем ввода?

Мой код выглядит примерно так:

app.py:

@app.route('/')
def render_home():
    return render_template("base.html")

обновление. js:

function update() {
    var new_input = document.getElementById("input");
    document.getElementById("demo").innerHTML = "You wrote: " + new_input.value;
}

база. html:

<body>
<form>
    <label for="input">Example Input:</label><br>
    <input type="text" name="input" onchange="update()"><br>
</form>

<p id="demo"></p>

<script type="text/javascript" src="static/js/update.js"></script>
</body>

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Итак, Flask регистрирует 'submit' как запрос GET, поэтому он появляется в URL-адресе. если вы надеетесь, что эта информация будет проанализирована в бэкэнде, вы можете использовать подмодуль request, чтобы фактически получать данные экземпляром Python, используя что-то вроде request.args, чтобы получить их как пару ключ: значение.

from flask import Flask, request

@app.route('/', methods=['GET'])
def render_home():
    req = request.args
    print(req)
    return render_template("base.html")
1 голос
/ 09 июля 2020

Это нормально, что приложение добавляет параметр запроса, когда вы нажимаете Enter, но я думаю, что ваша функция JS не работает, потому что getElementById('input') вернет null, так как ваш ввод не имеет установленного идентификатора. Попробуйте установить идентификатор на входе, например <input id="myInput", и используйте document.getElementById('myInput')

. Также у вас есть опечатка в JS fun c. Вы вводите new_input, но позже вы используете new_factor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...