You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask-SQLAlchemy查询MySQL计算日期差报BaseQuery无date属性如何解决

错误原因

你代码里的d1、d2变量是SQLAlchemy的BaseQuery查询对象,没有执行查询获取实际的日期数据,因此不存在date()方法,直接调用就会抛出属性不存在的错误。另外你现有代码的查询逻辑也存在问题:query.get()方法是按主键值检索单条记录,不能传字段名作为参数;模板里对单个数字值做循环遍历也会触发后续错误。

修复后的后端代码

@app.route('/',methods=['GET','POST'])
def show():
    # 示例按主键id=1获取指定的任务记录,你可以根据自己的筛选逻辑调整查询条件
    task = MyTask.query.get(1)
    # 如果要查询全部任务的日期差,替换为下方逻辑
    # tasks = MyTask.query.all()
    # dura_list = [(task.dates_finish - task.dates_start).days for task in tasks]
    # return render_template('index.html', dura=dura_list)
    
    # 单条记录计算天数差
    dura = task.dates_finish - task.dates_start
    return render_template('index.html', dura=dura.days)

修复后的模板代码

如果是单条记录的天数差,直接输出即可,不需要循环:

{{ dura }}
<br>

如果是多条记录的天数差列表,保留循环逻辑即可:

{% for output in dura %}
{{ output }}
{% endfor %}
<br>

内容的提问来源于stack exchange,提问作者Albert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:21:02