Request¶
future.request.Request wraps one ASGI HTTP (or WebSocket) connection. Controllers and middleware use self.request.
Attributes¶
| Attribute | Meaning |
|---|---|
method |
GET, POST, … (or WEBSOCKET) |
path |
URL path |
scheme |
http / https / ws / wss |
host |
From the Host header |
headers |
dict[str, str] (decoded from ASGI byte pairs) |
cookies |
Parsed from Cookie |
query |
Query string: single values are str, repeated keys are list[str] |
session |
Plain dict (persist with SessionMiddleware) |
context |
Scratch dict for middleware → controller |
scope |
Raw ASGI scope |
receive |
ASGI receive callable |
Body helpers¶
Cached after the first read:
await self.request.body() # bytes
await self.request.json() # dict
await self.request.form() # urlencoded or multipart fields
await self.request.files() # multipart UploadedFile values (after form())
self.request.query.get("ticker")
self.request.headers.get("authorization")
self.request.cookies.get("session")
self.request.session["user"] = "alice"
Uploads¶
files() returns UploadedFile instances (filename, content_type, content).