fastapi 将2个字符串显示在一个html模版上,这个html模版1秒钟后自动跳转到另一网页,并将这两个字符串传递过去 不使用JavaScript
时间: 2024-09-10 19:26:02 浏览: 53
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。如果你想要在一个 HTML 模板上显示两个字符串,并在 1 秒后自动跳转到另一个网页,同时传递这两个字符串,你可以通过服务器端的模板渲染和 HTTP 头信息来实现这一功能,而不使用 JavaScript。
这里是一个简单的例子来说明如何使用 FastAPI 来完成这个需求:
首先,安装 FastAPI 和 Uvicorn(用于运行 FastAPI 应用的服务器):
```bash
pip install fastapi uvicorn
```
然后创建 FastAPI 应用程序:
```python
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
import time
app = FastAPI()
# 初始化模板
templates = Jinja2Templates(directory="path/to/your/templates")
@app.get("/")
async def read_main(request: Request):
# 传递两个字符串到模板
context = {"string1": "Hello", "string2": "World!"}
# 渲染 HTML 模板并返回
return templates.TemplateResponse("display_strings.html", {"request": request, **context})
@app.get("/redirect")
async def read_redirect():
# 等待 1 秒
time.sleep(1)
# 返回重定向到另一个路径
return RedirectResponse(url="/target_url")
```
创建一个名为 `display_strings.html` 的 HTML 模板文件,放置在指定的目录下(在上面的代码中,我们假设模板目录为 `"path/to/your/templates"`):
```html
<!DOCTYPE html>
<html>
<head>
<title>Display Strings</title>
<meta http-equiv="refresh" content="1;url=/redirect">
</head>
<body>
<h1>{{ string1 }} {{ string2 }}</h1>
</body>
</html>
```
这个模板会在页面加载时显示传递过来的字符串,并在 1 秒后自动跳转到 `/redirect` 路径。
另外,你需要一个处理重定向的目标路由,比如 `/target_url`:
```python
@app.get("/target_url")
async def read_target(request: Request):
# 在这里处理重定向后的逻辑
pass
```
这样,当用户访问根路径 `/` 时,他们会看到显示两个字符串的页面,页面会在 1 秒后自动跳转到 `/target_url` 路径。
阅读全文