使用flask_sqlalchemy插入HTML表单日期到SQLite数据库问题求助
问题原因
代码中多次实例化数据库映射类导致生成多条记录:你对database类执行了3次实例化操作,每次仅传入单个字段的参数,随后分别将3个实例添加到了数据库会话中,每次添加操作都会对应生成1条新的数据库行,因此最终会插入3条仅单个字段有值的记录。
修正代码
将原POST请求处理逻辑中的实例化、添加代码替换为如下内容即可:
# 单次实例化,传入所有字段参数 record = database(user=name, startdate=startdate1, enddate=enddate1) try: # 仅添加1次实例即可插入完整的1行数据 db.session.add(record) db.session.commit() return redirect('/') except: return 'There was an issue adding your task'
可选优化建议
如果后续需要对日期字段做范围查询、排序等操作,建议将模型中的日期字段类型从db.String(10)改为db.Date,插入时可以直接将表单拿到的日期字符串转成datetime类型存入,后续使用更灵活。
内容的提问来源于stack exchange,提问作者benisbestpokemongo
相关产品推荐
相关产品推荐

