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

使用Flask+Jinja开发应用时遇jinja2.exceptions.UndefinedError: 'user'未定义

解决Jinja2 UndefinedError: 'user' is undefined错误

问题根源

你的模板home.html中使用了user.notes遍历笔记,但对应的路由home没有将user变量传递给render_template,导致Jinja无法找到该变量,触发未定义错误。

修复方案

1. 在路由中传递user变量

修改路由代码,将用户对象作为参数传入render_template:

@views.route('/')
def home():
    # 这里假设你已通过认证获取到用户对象,比如使用Flask-Login的current_user
    from flask_login import current_user
    return render_template("home.html", user=current_user)

如果是自定义认证逻辑,直接将获取到的用户实例赋值给user参数即可。

2. 修正模板中的语法错误

模板里的deleteNote调用存在语法问题,原代码deleteNote({note,id })会导致JS报错,修正为:

<button type="button" class="close" onClick="deleteNote({{ note.id }})">
  <span aria-hidden="true">&times;</span>
</button>

额外验证点

  • 确认传递的user对象确实包含notes属性,避免出现新的未定义错误。
  • 如果页面需要登录访问,确保已通过装饰器(如@login_required)限制未登录用户访问,避免传递空的用户对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:55:24