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

Поле формы DateTimeLocalField

Класс DateTimeLocalField применяется в формах Flask-WTF для создания поля ввода даты и времени без указания часового пояса. Это поле отображается в браузере как элемент <input type="datetime-local">. Первым параметром передаётся подпись поля label, а через именованные параметры задаются валидаторы, формат ввода и значение по умолчанию.

При отправке формы значение автоматически преобразуется в объект datetime.datetime. Если строка не соответствует заданному формату, поле считается невалидным.

Синтаксис

from wtforms import DateTimeLocalField field = DateTimeLocalField(label, validators=[...], format='%Y-%m-%dT%H:%M')

Пример

Давайте создадим простую форму с полем даты и времени:

from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import DateTimeLocalField, SubmitField from wtforms.validators import DataRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class MyForm(FlaskForm): created = DateTimeLocalField('Created', validators=[DataRequired()]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if form.validate_on_submit(): return str(form.created.data) return render_template('index.html', form=form)

И шаблон для вывода формы:

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.created.label }} {{ form.created() }}</p> <p>{{ form.submit() }}</p> </form>

Если пользователь введёт 2024-05-20T14:30, в ответ вернётся:

2024-05-20 14:30:00

Пример

Давайте зададим значение по умолчанию и собственный формат отображения:

from datetime import datetime from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import DateTimeLocalField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class MyForm(FlaskForm): created = DateTimeLocalField( 'Created', default=datetime(2024, 5, 20, 14, 30), format='%Y-%m-%dT%H:%M' ) submit = SubmitField('Send') @app.route('/') def index(): form = MyForm() return render_template('index.html', form=form)

В браузере поле будет заполнено значением:

2024-05-20T14:30

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

  • класс Form,
    который является базой для всех форм
  • поле DateTimeField,
    которое принимает дату и время с часовым поясом
  • поле DateField,
    которое принимает только дату
  • поле TimeField,
    которое принимает только время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить