下面是我的FastAPI后端:
主文件名.py
from typing import Optional
from fastapi import FastAPI, Request, Form
from fastapi.templating import Jinja2Templates
app = FastAPI()
templates = Jinja2Templates(directory='./')
@app.get("/")
def index():
return "Hello World"
@app.get("/item/{text}")
def get_item(text: str):
return {"result": tuple(['Hi', 'hello'])}
@app.get("/form")
def form(request: Request):
result = ""
return templates.TemplateResponse('form.html', context={'request': request, 'result': result})
@app.post("/form")
def form(request: Request, text: str=Form(...)):
result = ['Hello', 'Hi', 'Bye'] # to simplify the example
return templates.TemplateResponse('form.html', context={'request': request, 'result': tuple(result)})
下面是Jinja2模板:
表单.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Small example</title>
</head>
<body>
<form method="post">
<label for="text">Input text:</label>
<br>
<textarea id="text" name="text" rows="12" cols="50"></textarea>
<br/>
<input type="submit" value="Submit">
</form>
<br></br>
<form method="post">
<label for="text">Result:</label>
<br>
<textarea id="result" name="result" rows="12" cols="50"> {{ result }} </textarea>
<br/>
</form>
</body>
</html>
在这里,我在文本区域中得到的结果为:('Hello', 'Hi', 'Bye')
.
我需要的是在 result 文本区域中逐行显示它:
Hello.
Hi.
Bye.
1条答案
按热度按时间sqougxex1#
选项1
您可以循环遍历元组,如下所示:
选项2
你也可以将aobve写在一行中,因为上面的代码看起来并没有将文本向左对齐,除非你将整个Python代码移到左边。使用下面的代码和
,如here所述,在项目之间添加换行符。