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

如何通过FastAPI将Python的time函数传入Jinja2模板计算渲染耗时?

Jinja2模板计算渲染耗时的解决办法

方案一:后端计算好耗时再传入模板

最直接省心的方式,在返回模板响应前算出耗时,把结果传入模板:

process_time = time.time() - t0
return templates.TemplateResponse("jobs.html", {
   "request": request, 
   "jobs": sorted(out, key=lambda d: d['id'], reverse=True),
   "project_ids": ','.join([str(id) for id in myids]),
   "sorted_collumn": 'id',
   "filter": filter,
   "alljobs": alljobs,
   "nrecent": nrecent,
   "t0": t0,
   "process_time": round(process_time, 2)
})

模板里直接调用变量:

耗时:{{ process_time }} 秒

方案二:在模板中导入time模块

Jinja2不允许在{{ }}表达式里直接写import,需要用专门的标签导入模块,建议给模块起别名避免变量冲突:
先在模板合适位置(比如开头)导入:

{% import time as time_mod %}

然后计算并格式化耗时:

耗时:{{ (time_mod.time() - t0)|round(2) }} 秒

之前写法报错的原因

  • 写法一:Jinja2的表达式语法不支持在{{ }}内嵌入import语句,必须用{% import %}标签来处理模块导入。
  • 写法二:模板中未导入time模块,系统找不到对应的模块对象,误将某个float类型变量(比如你传入的t0)当成time来调用.time()方法,因此报错“float对象没有time属性”。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:55:29