跳到内容

HTTPConnection

当你想定义与 HTTP 和 WebSockets 都兼容的依赖时,你可以定义一个参数来接收 HTTPConnection,而不是 RequestWebSocket

你可以从 fastapi.requests 导入它

from fastapi.requests import HTTPConnection

fastapi.requests.HTTPConnection

HTTPConnection(scope, receive=None)

基类:Mapping[str, Any]

一个用于传入 HTTP 连接的基类,用于提供 RequestWebSocket 共有的任何功能。

源代码在 starlette/requests.py
76
77
78
def __init__(self, scope: Scope, receive: Receive | None = None) -> None:
    assert scope["type"] in ("http", "websocket")
    self.scope = scope

scope 实例属性

scope = scope

app 属性

app

url 属性

url

base_url 属性

base_url

headers 属性

headers

query_params 属性

query_params

path_params 属性

path_params

cookies 属性

cookies

client 属性

client

session 属性

session

auth 属性

auth

user 属性

user

state 属性

state

url_for

url_for(name, /, **path_params)
源代码在 starlette/requests.py
182
183
184
185
186
187
def url_for(self, name: str, /, **path_params: typing.Any) -> URL:
    url_path_provider: Router | Starlette | None = self.scope.get("router") or self.scope.get("app")
    if url_path_provider is None:
        raise RuntimeError("The `url_for` method can only be used inside a Starlette application or with a router.")
    url_path = url_path_provider.url_path_for(name, **path_params)
    return url_path.make_absolute_url(base_url=self.base_url)