Мы уже видели, что метод http может быть указан в правиле URL. Данные формы, полученные триггерной функцией, могут собирать их в виде объекта словаря и пересылать в шаблон для отображения на соответствующей веб-странице.
В следующем примере URL — адрес «/» отображает веб-страницу (student.html), которая имеет форму. Заполненные данные публикуются по URL — адресу «/ result», который вызывает функцию result () .
Функция results () собирает данные формы, присутствующие в request.form в объекте словаря, и отправляет их для рендеринга в result.html .
Шаблон динамически отображает HTML-таблицу данных формы .
Ниже приведен код приложения Python —
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)
Ниже приведен HTML-скрипт student.html .
<html> <body> <form action = "http://localhost:5000/result" method = "POST"> <p>Name <input type = "text" name = "Name" /></p> <p>Physics <input type = "text" name = "Physics" /></p> <p>Chemistry <input type = "text" name = "chemistry" /></p> <p>Maths <input type ="text" name = "Mathematics" /></p> <p><input type = "submit" value = "submit" /></p> </form> </body> </html>
Код шаблона (result.html) приведен ниже —
<!doctype html> <html> <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 / в браузере.
При нажатии кнопки « Отправить» данные формы отображаются в файле result.html в виде таблицы HTML.