fastapi返回超链接
时间: 2024-05-09 22:12:19 浏览: 122
在 FastAPI 中,你可以通过使用 Pydantic 模型类来定义返回数据的结构,然后使用 `FastAPI.responses.HTMLResponse` 返回一个 HTML 页面,其中包含超链接。具体步骤如下:
1. 定义一个 Pydantic 模型类,用于描述返回数据的结构。例如:
```python
from typing import List
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str
links: List[str]
```
2. 定义一个路由函数,用于处理客户端的请求。在这个函数中,你需要创建一个 `Item` 类的实例,并为 `links` 属性设置一个包含超链接的列表。最后,使用 `FastAPI.responses.HTMLResponse` 返回一个 HTML 页面,其中包含超链接。例如:
```python
from fastapi import FastAPI, Response
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get("/items/{item_id}", response_class=HTMLResponse)
async def read_item(item_id: int, response: Response):
item = Item(name="Foo", description="The pretender", links=["https://www.example.com", "https://www.example.org"])
html_content = f"""
<html>
<head>
<title>{item.name}</title>
</head>
<body>
<h1>{item.name}</h1>
<p>{item.description}</p>
<ul>
{''.join(f"<li><a href='{link}'>{link}</a></li>" for link in item.links)}
</ul>
</body>
</html>
"""
response.body = html_content
return response
```
在这个例子中,我们定义了一个 `/items/{item_id}` 的路由,当客户端访问这个路由时,会返回一个包含超链接的 HTML 页面。
阅读全文