python - Wtforms.fields.html5 DateField 和 TimeField 占位符
问题描述
使用烧瓶应用程序,对于表单:
...
from wtforms.fields.html5 import DateField, TimeField
...
class PostForm(FlaskForm):
date_posted = DateField('Date',format='%Y-%m-%d')
time_posted = TimeField('Time',format='%H:%M')
如何让它返回当前日期和时间作为占位符?在输入有效日期之前,日期和计时器选择器将不允许提交。默认情况下,我希望刷新页面,以便日期和时间选择器显示当前日期和时间,以便可以提交帖子 - 即使没有更改。
@app.route("/post/new", methods=['GET', 'POST'])
def new_post():
form = PostForm()
if form.validate_on_submit():
post = Post(date_posted=form.date_posted.data,
time_posted=form.time_posted.data)
db.session.add(post)
db.session.commit()
return redirect(url_for('home'))
return render_template('create_post.html', title='New Post', form=form, legend='New Post')
非常感谢您的帮助
解决方案
您可以使用该default
参数来传递表单字段的默认值。在您的情况下,用于datetime.datetime.now()
获取当前日期和时间:
from datetime import datetime
class PostForm(FlaskForm):
date_posted = DateField('Date', format='%Y-%m-%d', default=datetime.now())
time_posted = TimeField('Time', format='%H:%M', default=datetime.now())
或者您可以将默认值格式化为特定格式:
class PostForm(FlaskForm):
date_posted = DateField('Date', format='%Y-%m-%d', default=datetime.now().strftime("%Y-%m-%d"))
time_posted = TimeField('Time', format='%H:%M', default=datetime.now().strftime("%H:%M"))
推荐阅读
- list - 替换方案列表中的值
- python - Flask 将 HTML 附加到静态提供的文件
- less - 如何使用less js中的变量作为出现在括号前的命令?
- php - 如何使用 php 表单从 API 获取数据
- c++ - 我如何设计这个算法?
- windows-10 - 是否有 USB 加密狗,可让您在没有 SIM 插槽的 Windows 10 PC 上接收短信?
- html - HTML5 时间选择器分钟在下拉列表中仅显示 15 分钟间隔数据
- azure-ad-b2c - 带有 Microsoft Graph 和 B2C 目录的 Android 应用
- c++ - 使用 Eigen SVD 进行线性回归
- java - 转换列表
到地图