[英]Jinja2 template not found
我正在使用带有Fastapi
和 python 的jinja2
模板来开发 web 服务器。 因此,当 web 浏览器执行获取请求时,我将要返回一个名为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 页面显示内部服务器错误。 显示的是 URL
http://localhost:8000/home?firstname=May&lastname=June
我认为您只需要 3 个空格,一切都会正常工作。
下面的代码中有 3 个锐器,用空格替换它们,你应该会喜欢的。 :D
@app.get(‘/home’)
def home(request:Request, firstname: Optional[Str] = None, lastname: Optional[Str] = None):
# process first name last name here
###return templates.TemplateResponse("index.html", {"request": request})
对于 fastapi & jinja2 模板,您应该使用绝对路径,例如:
主文件
from pathfile import Path
# some of codes here....
BASE_PATH = Path(__file__).parent.resolve()
# lets say your template directory is under the root directory
templates = Jinja2Templates(directory=f'{BASE_PATH}/templates')
@app.get('/', response_class=HTMLResponse)
async def homepage(request: Request):
return templates.TemplateResponse('index.html', {'request': request})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.