在此示例中,入口点 http://127.0.0.1:8000/ 返回格式化文本:
"Hello \"World\"!"
引号用斜杠遮盖,并且在开头和结尾都添加引号。如何返回未格式化的文本,与我的字符串相同
Hello "World"!
。
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/",)
def read_root():
return 'Hello "World"!'
uvicorn.run(app)
当您从 FastAPI 端点返回字符串时,FastAPI 会自动将其转换为 JSON 响应,这就是示例中引号被转义的原因。 JSON 字符串必须使用反斜杠转义双引号。
如果您想返回无格式文本(纯文本)而不是 JSON,您可以使用 FastAPI 的
PlainTextResponse
对象(文档此处)来实现。
我在这里使用 FastApi 版本 0.104:
import uvicorn
from fastapi import FastAPI
from fastapi.responses import PlainTextResponse
app = FastAPI()
@app.get(
"/",
response_class=PlainTextResponse,
)
def read_root():
return 'Hello "World"!'
uvicorn.run(app)
您还可以显式返回一个
PlainTextResponse
对象:
import uvicorn
from fastapi import FastAPI
from fastapi.responses import PlainTextResponse
app = FastAPI()
@app.get("/")
def read_root():
return PlainTextResponse('Hello "World"!')
uvicorn.run(app)
由于媒体类型在这里并不重要,因此您还可以返回一个
Response
对象(PlainTextResponse
是 Response
的子类,其中 media_type="text/plain"
):
import uvicorn
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/")
def read_root():
return Response('Hello "World"!')
uvicorn.run(app)