我正在使用带有提交按钮的表单,该表单通过Flask处理,以便在称为任务的SQLite数据库中添加新任务(一行)。
这里是HTML <div/>
容器,其中烧瓶部分分别具有块内容:
<div class="container">
{% block content %}
<form name="task_form" method="post" action="">
{{ form.csrf_token }}
<input type="text" name="task_title" placeholder="Title..."/>
<input type="text" name="task_description" placeholder="Description..."/>
<input type="date" name="task_date_due" placeholder="Due date..."/>
<input type="time" name="task_clock_due" placeholder="Due date (clock)..." step="1"/>
<input type="submit" name="task_submit" value="Add task"/>
</form>
{% endblock %}
</div>
在Python方面,我具有以下功能,用于处理特定页面的GET和POST请求:
@app.route('/db', methods=['GET', 'POST'])
def db():
# Create form
form = TaskForm(request.form)
# Initialize DB connection
init_db_conn()
# Handle POST request
if request.method == 'POST':
# Get form data
title = request.form['task_title']
description = request.form['task_description']
date = request.form['task_date_due']
time = request.form['task_clock_due']
if title != '' and description != '' and date != '' and time != '':
str_dtime = date + ' ' + time
db_conn = get_db_conn()
create_task(db, title, description, str_dtime)
elif request.method == 'GET':
pass
db_conn = get_db_conn()
cur = db_conn.cursor()
cur.execute('SELECT * FROM tasks')
tasks = cur.fetchall()
tmp = render_template('db.html', form=form, tasks=tasks)
return tmp
[我不是Flask的新手,我的HTML技能很生锈,所以我可能会遗漏一些东西,但是每当我通过页面提交表单中的数据时,我都没有输入完整的时间戳(我使用单独的日期和时间输入以允许使用日历弹出窗口和时间格式的字段;可以通过更好的方式来完成,但现在就这样),我得到了空字符串。
示例:
我期望的是,只要选择了小时,就会自动获得分钟/秒的自动补全。
示例:
<input type="time" name="task_clock_due" placeholder="Due date (clock)..." step="1", value="00:00:00"/>
<span class="validity"></span>