РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
63 of 643 menu

Атрибут form

Атрибут form применяется к объекту запроса request и возвращает словарь ImmutableMultiDict с данными, которые пользователь отправил через HTML-форму. Данные извлекаются из тела запроса для методов POST, PUT и PATCH с типом содержимого application/x-www-form-urlencoded или multipart/form-data. Ключи словаря - это значения атрибутов name полей формы, а значения - введённые пользователем данные.

Синтаксис

request.form

Пример

Давайте создадим простую HTML-форму для отправки имени пользователя:

<form method="post" action="/submit"> <input type="text" name="username"> <input type="submit" value="Send"> </form>

Теперь напишем обработчик, который принимает данные формы и выводит их:

from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/submit', methods=['POST']) def submit(): username = request.form['username'] return username

Результат выполнения кода для введённого значения 'abcde':

"abcde"

Пример

Для безопасного извлечения данных используйте метод get, который возвращает None, если поля нет в форме:

from flask import Flask, request app = Flask(__name__) @app.route('/submit', methods=['POST']) def submit(): username = request.form.get('username') email = request.form.get('email', 'not specified') return f'{username} - {email}'

Результат выполнения кода, если передано только поле username со значением 'user':

"user - not specified"

Пример

Атрибут form поддерживает множественные значения через метод getlist. Давайте обработаем форму с несколькими чекбоксами:

<form method="post" action="/tags"> <input type="checkbox" name="tag" value="a"> <input type="checkbox" name="tag" value="b"> <input type="checkbox" name="tag" value="c"> <input type="submit" value="Send"> </form>

Обработчик получает список выбранных значений:

from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/tags', methods=['POST']) def tags(): selected = request.form.getlist('tag') return str(selected)

Результат выполнения кода при выборе всех трёх чекбоксов:

['a', 'b', 'c']

Смотрите также

  • класс Request,
    который представляет HTTP-запрос
  • атрибут args,
    который хранит параметры GET-запроса
  • атрибут values,
    который объединяет данные form и args
  • атрибут files,
    который хранит загруженные файлы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить