starlette.responses.PlainTextResponse()在Python中用于生成纯文本输出的实例
starlette.responses.PlainTextResponse() 是 Starlette 框架中用于生成纯文本输出的类。它表示一个 HTTP 响应,将纯文本作为响应正文返回给客户端。
使用 starlette.responses.PlainTextResponse() 时,您可以使用多种方式来生成纯文本响应。以下是使用 PlainTextResponse() 的一些常见用例:
**1. 返回简单的文本响应:**
您可以使用 PlainTextResponse() 来返回一个包含纯文本的简单 HTTP 响应。例如:
from starlette.responses import PlainTextResponse
async def simple_text_response(request):
return PlainTextResponse("Hello, World!")
上述代码定义了一个名为 simple_text_response 的异步函数,它返回一个包含文本 "Hello, World!" 的纯文本响应。
**2. 动态生成文本响应:**
您还可以在 PlainTextResponse() 中使用动态生成的内容。可以使用字符串格式化,模板引擎或其他方法来生成响应的文本内容。
from starlette.responses import PlainTextResponse
async def dynamic_text_response(request):
name = "John Doe"
greeting = f"Hello, {name}!"
return PlainTextResponse(greeting)
上述代码中的 dynamic_text_response 函数动态生成一个问候语,并将其作为纯文本响应返回给客户端。
**3. 自定义响应头和状态码:**
您可以在创建 PlainTextResponse() 实例时,指定自定义的响应头和状态码。
from starlette.responses import PlainTextResponse
async def custom_headers_response(request):
content = "This is a custom response with custom headers."
headers = {
"X-Custom-Header": "Custom value",
"Content-Length": str(len(content)),
}
return PlainTextResponse(content, status_code=200, headers=headers)
上述代码定义了一个名为 custom_headers_response 的异步函数。它创建一个包含自定义响应头和状态码的纯文本响应,并返回给客户端。
**4. 设置其他参数:**
PlainTextResponse() 类还提供了一些其他参数,用于设置响应正文的编码、内容类型和其他属性。以下是一些示例:
from starlette.responses import PlainTextResponse
async def advanced_response(request):
content = "This is an advanced response."
encoding = "utf-8"
media_type = "text/plain"
headers = {
"Content-Language": "en-US",
"Cache-Control": "no-cache",
}
return PlainTextResponse(content, encoding=encoding, media_type=media_type, headers=headers)
上述代码创建了一个名为 advanced_response 的异步函数。它设置了响应正文的编码、内容类型和其他自定义响应头。
以上是使用 starlette.responses.PlainTextResponse() 的一些典型用例。根据您的需求,您可以根据自己的需求自定义纯文本响应。
