English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Мы видели, что можно указать http метод в правилах URL. Функция, которая принимает URL-мappings, может собирать данные из формы в виде объекта словаря и передавать их шаблону для отображения на соответствующей странице.
В следующем примере, URL => / показывает веб-страницу с формой ( student.html) данные, заполненные в этом примере, будут отправлены на URL => /result, который запускает функцию result().
Функция results() собирает данные из формы, которые существуют в request.form, и отправляет их в result.html и показывает её.
Этот шаблон динамически отображает таблицу HTML с данными формы.
Ниже приведен код приложения на Python -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ru.oldtoolbag.com # Date : 2020-08-08 from flask import Flask, render_template, request app = Flask(__name__) @app.route('/') def student(): return render_template('student.html') @app.route('/result', methods=['POST', 'GET']) def result(): if request.method == 'POST': result = request.form return render_template("result.html", result=result) if __name__ == '__main__': app.run(debug=True)
Ниже приведено: student.html код HTML скрипта.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ru.oldtoolbag.com # Date : 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Пример Flask</title> </head> <body> <form action="http://localhost:5000/result" method="POST"> <p>Имя <input type="text" name="Name" /></p> <p>Физический балл: <input type="text" name="Physics" /></p> <p>Химический балл: <input type="text" name="Chemistry" /></p> <p>Математический балл: <input type="text" name="Mathematics" /></p> <p><input type = "submit" value = "Подтвердить" /></p> </form> </body> </html>
Код шаблона (result.html) приведен ниже -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ru.oldtoolbag.com # Date : 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Пример Flask</title> </head> <body> <table border = 1> {% for key, value in result.items() %} <tr> <th> {{ key }} </th> <td> {{ value }} </td> </tr> {% endfor %} </table> </body> </html>
Запустить скрипт Python и ввести URL в браузере => http://localhost:5000/ . Результат показан ниже -
Когда нажимается ПодтвердитьКогда нажимается кнопка, данные формы представлены в виде HTML-таблицы result.html Как показано ниже -