Поле формы DateTimeField
Класс DateTimeField применяется для создания поля формы, в котором пользователь вводит дату и время. Это поле преобразует введённую строку в объект datetime.datetime. Первым параметром передаётся подпись поля, а именованным параметром format можно задать ожидаемый формат ввода даты и времени.
Синтаксис
from wtforms import DateTimeField
field = DateTimeField(label, [validators], format='%Y-%m-%d %H:%M')
Пример
Давайте создадим простую форму с полем для ввода даты и времени:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import DateTimeField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
event = DateTimeField('Event time')
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
res = None
if form.validate_on_submit():
res = form.event.data
return render_template('index.html', form=form, res=res)
Теперь создадим шаблон для отображения формы:
<form method="post">
{{ form.hidden_tag() }}
<p>{{ form.event.label }} {{ form.event() }}</p>
<p>{{ form.submit() }}</p>
</form>
{% if res %}
<p>{{ res }}</p>
{% endif %}
После ввода значения 2024-05-01 12:30 и отправки формы на странице появится результат:
2024-05-01 12:30:00
Пример
Давайте зададим собственный формат ввода при помощи параметра format:
from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import DateTimeField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
event = DateTimeField('Event time', format='%d.%m.%Y %H:%M')
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
res = None
if form.validate_on_submit():
res = form.event.data
return render_template('index.html', form=form, res=res)
Шаблон останется прежним:
<form method="post">
{{ form.hidden_tag() }}
<p>{{ form.event.label }} {{ form.event() }}</p>
<p>{{ form.submit() }}</p>
</form>
{% if res %}
<p>{{ res }}</p>
{% endif %}
После ввода значения 01.05.2024 12:30 и отправки формы на странице появится результат:
2024-05-01 12:30:00
Смотрите также
-
класс
Form,
который является базой для создания форм -
поле
DateField,
которое предназначено только для ввода даты -
поле
TimeField,
которое предназначено только для ввода времени -
поле
DateTimeLocalField,
которое создаёт локальное поле даты и времени