Не могу получить данные из моей формы HTML в моем приложении python flask - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь связать html текстовые поля с моим приложением python flask, чтобы я мог взаимодействовать с ним, поэтому я много чего перепробовал и "проанализировал" inte rnet, чтобы посмотреть, как чтобы сделать это, но ничего не помогло.

Однако я сделал небольшую тестовую программу, чтобы вы могли лучше понять, и у меня все еще много ошибок, собственно, сам запуск теста страницы, и после ввода ввода и нажатия кнопки подтверждения у меня появляется ошибка «Метод не разрешен», хотя я думал, что она исправится, если в поле методов я добавлю методы «get» и «POST».

В любом случае, я на самом деле заблокирован, и мне нужно, чтобы вы помогли мне заставить эту простую программу работать.

Вот маршрут для моей программы:

@app.route('/test.html', methods=['GET', 'POST'])
def route_test():
    text = request.form.get('text')
    print(text)
    return render_template('test.html', message = text)

А вот страница html ссылка на него:

<!doctype html> <html lang= "en">

<head>
<meta charset="UTF8">
</head>
<body>
<h1>Indiquer votre nom</h1> <form action= "." method= "POST">
<input type= "text" name= "text"> <button type= "submit">OK</button>
</form>
<p>{{ message }}</p>
</body> </html>

Как вы можете видеть, это очень просто, хотя и не выводит мне текст вообще.

Я также пробовал с request.form ['text '], и изменил action="." разными вещами, но ничего не изменилось. Надеюсь, вы решите мою проблему, большое спасибо.

1 Ответ

0 голосов
/ 02 апреля 2020

Я вернулся, я наконец-то нашел ответ, который я опубликую здесь для тех, кто интересуется: на самом деле вы должны создать другой маршрут, ссылка на который (URL) будет действием вашей html создайте свою страницу состояния c, чтобы при нажатии кнопки отправки вызывать другой маршрут, который является функцией в python, а затем вы можете получить свои выходные данные с помощью request.form ['input1'].

В любом случае, вот небольшой пример кода:

@app.route('/test', methods=['GET'])
def route_test():
    text = request.form.get('text')
    print(text)
    return render_template('test.html', message = text)

@app.route('/test_obtain_input', methods=['POST'])
def route_test_obtain_input():
    text = request.form['text']
    print(text)
##you can do whatever you want with it after, here I just reinjecting it in my test page
    return render_template('test.html', message = text)

И поэтому моя форма HTML будет выглядеть следующим образом:

<!-- insert the url that is adequate to your application -->
<form action= "https://localhost:5000/test_obtain_input" method= "POST">
<input type= "text" name= "text">
<button type= "submit">OK</button>
</form>

Хотя я не тестировал этот код, потому что использовал это на моей реальной странице, это должно работать, и это хорошая логика c, мой товарищ по команде и я не нашли другого решения для этого.

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