欢迎访问宙启技术站
智能推送

Python中starlette.responses.PlainTextResponse()的用法和示例

发布时间:2024-01-07 13:09:04

在Python的starlette库中,starlette.responses.PlainTextResponse()是用来创建一个纯文本响应的类。该类需要一个文本字符串作为参数,并可以带有其他可选参数。它返回一个响应对象,可以通过方法链式调用来设置其他各种属性,例如设置状态码、添加头信息等。

以下是使用starlette.responses.PlainTextResponse()类的一个简单示例:

from starlette.responses import PlainTextResponse
from starlette.applications import Starlette
from starlette.routing import Route

async def home(request):
    return PlainTextResponse("Hello, World!")

# 创建一个 Starlette 应用
app = Starlette(debug=True, routes=[
    Route('/', home),
])

if __name__ == "__main__":
    import uvicorn

    # 使用 Uvicorn 服务器运行 Starlette 应用
    uvicorn.run(app, host="0.0.0.0", port=8000)

在上面的示例中,我们创建了一个名为home的异步函数,它接收一个request参数并返回一个starlette.responses.PlainTextResponse对象。在这个例子中,我们只是返回了一个简单的文本字符串Hello, World!作为响应。

然后,我们创建了一个Starlette应用,并将home函数作为根路径'/'的处理程序。最后,我们使用Uvicorn服务器运行这个应用。

当您访问http://localhost:8000/时,你将看到页面上显示了文本字符串Hello, World!。这是因为我们使用starlette.responses.PlainTextResponse()类创建的响应对象,将这个字符串作为响应内容返回给了客户端。

与其他Starlette响应类一样,starlette.responses.PlainTextResponse()可用于设置其他属性,例如状态码和头信息。以下是一个稍微复杂一点的示例,演示如何设置状态码和添加自定义头信息:

from starlette.responses import PlainTextResponse
from starlette.applications import Starlette
from starlette.routing import Route

async def home(request):
    response = PlainTextResponse("Hello, World!")
    response.status_code = 200  # 设置状态码
    response.headers['X-Custom-Header'] = 'Hello'  # 添加自定义头信息
    return response

app = Starlette(debug=True, routes=[
    Route('/', home),
])

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

在这个示例中,我们创建了一个starlette.responses.PlainTextResponse()对象,并设置了状态码为200。然后,我们通过字典形式给response.headers属性添加了一个自定义头信息X-Custom-Header: Hello

总结一下,starlette.responses.PlainTextResponse()类是用于创建纯文本响应的类。您可以通过传递文本字符串和其他可选参数来创建一个简单的纯文本响应。还可以通过使用返回的响应对象的方法链式调用来设置其他属性,例如状态码和头信息。