> For the complete documentation index, see [llms.txt](https://go.raymondctw.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://go.raymondctw.dev/technology/web-development/fastapi/hui-chuan-html.md).

# 回傳HTML

利用FastAPI回傳html比較沒有像Flask一樣那麼直覺，畢竟FastAPI是以API為核心。

#### 安裝jinja2

```
pip install jinja2
```

#### FastAPI

```python
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates

app = FastAPI()

# 指定templates資料夾路徑
templates = Jinja2Templates(directory="templates")

@app.get("/items/{id}", response_class = HTMLResponse)
def read_item(request: Request, id: str)
    return templates.TemplateResponse("item.html", {"request": request, "id": id})
```

將相關資料透過templates.TemplateResponse的第二個參數傳送至HTML，並可透過jinja2的方法顯示在網頁。
