如何使用Flask/Jinja2为HTML date输入框传递值
问题解决:Flask传递日期到HTML date输入框不显示的问题
问题原因
HTML5的<input type="date">对value属性的格式有严格要求,必须是ISO 8601标准格式:YYYY-MM-DD。你当前用strftime("%x")生成的是本地化日期格式(比如12/05/2022),这种格式浏览器无法识别,所以输入框不会显示对应的日期。
解决方案
修改Flask视图中的日期格式化代码,改用%Y-%m-%d格式生成符合要求的日期字符串:
修改后的views.py代码
from datetime import datetime from flask import render_template @views.route('/') def index(): # 设置start_date为今天,使用ISO 8601格式 start_date = datetime.now().strftime("%Y-%m-%d") return render_template('index.html', start_date=start_date)
HTML代码保持不变
<div class="date-input"> <label for="start_date">Choose a start date:</label><br> <input type="date" name="start_date" value="{{ start_date }}"><br> </div>
验证
修改后打印start_date,会得到类似2022-12-05的格式,此时浏览器就能正确识别并将该日期显示在日期输入框中。
内容的提问来源于stack exchange,提问作者Brandon
相关产品推荐
相关产品推荐

