fastapi 将一个参数显示在一个html模版上,这个html模版1秒钟后自动跳转到另一网页,并将这两个字符串传递过去在新页面上显示 不使用JavaScript
时间: 2024-09-10 13:26:02 浏览: 48
在FastAPI中实现将参数传递到HTML模板并在1秒后跳转到另一网页,可以通过以下步骤完成:
1. 首先,你需要在FastAPI后端定义一个路由来处理请求,并将需要传递给模板的参数传递到模板中。
2. 使用Jinja2模板引擎来渲染HTML,FastAPI默认使用Jinja2作为模板引擎。
3. 在模板中设置meta标签,让浏览器在加载后1秒自动跳转到指定的URL。
4. 通过模板的上下文传递参数到HTML页面上,并在页面上显示这些参数。
下面是一个简单的例子:
首先,在FastAPI后端定义路由和模板参数:
```python
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory="templates")
@app.get("/")
async def read_item(request: Request):
message = "Hello World"
return templates.TemplateResponse("redirect_template.html", {"request": request, "message": message})
```
接着,在模板文件`templates/redirect_template.html`中创建以下内容:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1;url=http://example.com/newpage">
<title>Redirecting...</title>
</head>
<body>
<h1>{{ message }}</h1>
<p>This page will redirect in 1 second.</p>
</body>
</html>
```
这里`http://example.com/newpage`是你想要跳转到的新网页地址,你需要将`{{ message }}`替换为实际的参数变量名。
对于新页面,你需要再创建一个模板来显示传递的参数,例如`templates/newpage_template.html`:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>新页面</title>
</head>
<body>
<h1>新页面</h1>
<p>传递的参数值是: {{ message }}</p>
</body>
</html>
```
在FastAPI后端,你需要再添加一个新的路由来处理新页面的请求,并传递同样的参数:
```python
@app.get("/newpage")
async def read_newpage(request: Request):
message = "Hello World"
return templates.TemplateResponse("newpage_template.html", {"request": request, "message": message})
```
阅读全文