跟随FASTapi教程使用Jinja2构建模板时遇AttributeError求助
解决
AttributeError: module 'jinja2' has no attribute 'contextfunction' 问题 这个错误的核心原因是Jinja2 3.1.0及以上版本移除了contextfunction属性,你当前使用的FastAPI/Starlette版本依赖这个已被移除的API,导致版本兼容冲突。以下是两种可行的解决方法:
方法一:升级FastAPI和Starlette到兼容版本
新版本的Starlette(FastAPI的底层依赖)已经适配了Jinja2 3.1+的变更,不再使用contextfunction。执行以下命令完成升级:
pip install --upgrade fastapi starlette
方法二:降级Jinja2到3.0.x版本
如果暂时不想升级FastAPI/Starlette,可以将Jinja2降级到仍保留contextfunction的3.0.x版本,执行:
pip install jinja2==3.0.3
额外代码修复提示
你的代码中还缺少几个必要的导入,否则运行时会出现其他错误,需要补充:
from fastapi import APIRouter, HTTPException, Request # 补充Request、APIRouter、HTTPException的导入
内容的提问来源于stack exchange,提问作者Boros
相关产品推荐
相关产品推荐

