【发布时间】:2021-05-28 14:15:12
【问题描述】:
我正在使用 jinja2 模板和 Fastapi 和 python 来开发 Web 服务器。因此,当网络浏览器发出 get 请求时,我会想要返回一个名为 index.html 的 HTML 页面。但是我看到这个错误,上面写着 raise
TemplateNotFound(template)
Jinja2.exceptions.TemplateNotFound: index.html
看看下面的代码:
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get('/')
def root(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
@app.get(‘/home’)
def home(request:Request, firstname: Optional[Str] = None, lastname: Optional[Str] = None):
# process first name last name here
processName(firstname,lastname )
return templates.TemplateResponse("index.html", {"request": request})
def processName(firstname, lastname):
return “hi “ + firstname + “ “ + lastname
HTML 页面显示内部服务器错误。它的网址正在显示
http://localhost:8000/home?firstname=May&lastname=June
【问题讨论】:
-
嗯,你真的在文件templates/index.html中有一个Jinja2模板吗?
-
是的,我有。启动浏览器并在 index.html 中键入本地 host:8000 时没有问题。仅当浏览器发出查询请求时才会出现问题。
-
如果可以的话,请帮我解决这个问题stackoverflow.com/questions/67661017/…
标签: python html jinja2 fastapi