【发布时间】:2021-01-28 10:33:40
【问题描述】:
您好,我正在尝试使用 fastapi 和 jinja2 从 html 代码链接到 json 文件,但链接不起作用。我想我必须告诉 fastapi 如何找到文件或类似的东西.. 我得到一个 json (api) 答案 instad 的文件..
{"detail":"Not Found"}
python代码:
from fastapi import FastAPI, Form, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='templates')
@app.get('/data', response_class=HTMLResponse)
async def data(request: Request):
return templates.TemplateResponse('data.html', {
'request': request
})
还有 HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
<title>Data</title>
</head>
<body>
<div class="ui container">
<h1>
Data downloader:
</h1>
<a href="../json/data.json" target="_blank">
Data
</a>
</div>
</body>
</html>
【问题讨论】:
-
我敢打赌
href是错误的。如果是路由的路径,则不需要..,如果data.json文件在同一个文件夹中,则相同 -
@lsabi 否...路径正确,在新选项卡中打开的url是data.json所在的路径。如果我直接运行html而不使用fastapi和uvicorn喜欢的作品......所以它必须在我错过了一些东西的fastapi模块中......
-
尝试共享您的文件夹结构。 Fastapi 可能仅将某个文件夹作为静态文件夹提供服务,其余文件夹通过内部路由器传递
标签: python jinja2 fastapi uvicorn