fastapi 将一个参数显示在一个html模版上,这个html模版1秒钟后自动跳转到另一网页,并将参数传递过去
时间: 2024-09-10 13:24:53 浏览: 59
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API。它可以和 Jinja2 模板引擎配合使用,将数据传递给 HTML 模板。以下是实现您描述功能的步骤:
1. 首先,创建一个 FastAPI 应用,并定义路由来渲染 HTML 模板。
2. 在模板中显示传递的参数。
3. 使用 JavaScript 在 HTML 模板中添加一个定时器,1秒后自动跳转到另一个页面。
4. 在跳转的页面中,您可以通过 URL 参数或者隐藏的表单字段来传递参数。
下面是一个简单的代码示例:
```python
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
import time
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/show-param")
def show_param(request: Request):
param_value = "您的参数值"
return templates.TemplateResponse("show_param.html", {"request": request, "param": param_value})
@app.get("/redirect-target")
def redirect_target(request: Request, param: str):
# 这里可以处理接收到的参数
return templates.TemplateResponse("target_page.html", {"request": request, "param": param})
```
对应的 `show_param.html` 模板可能如下:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>显示参数</title>
<script>
// 页面加载完成后,1秒自动跳转
window.onload = function() {
setTimeout(function() {
window.location.href = "/redirect-target?param={{ param }}";
}, 1000);
};
</script>
</head>
<body>
<h1>参数显示</h1>
<p>参数值:{{ param }}</p>
</body>
</html>
```
对应的 `target_page.html` 模板可能如下:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>跳转目标页</title>
</head>
<body>
<h1>目标页面</h1>
<p>接收的参数值:{{ param }}</p>
</body>
</html>
```
请注意,这个例子使用了 URL 参数来传递数据。如果您希望在跳转时不在 URL 中显示参数,您可能需要将参数编码到一个隐藏的表单字段中,并在客户端 JavaScript 中获取这个字段的值,然后通过 AJAX 请求将其发送到目标页面。
阅读全文