Make query values in basic request flatten when provided as single values
This commit is contained in:
@@ -14,6 +14,5 @@ async def index(req: BasicRequest) -> BasicResponse:
|
|||||||
|
|
||||||
@app.get("/user/")
|
@app.get("/user/")
|
||||||
async def get_user(req: BasicRequest) -> BasicResponse:
|
async def get_user(req: BasicRequest) -> BasicResponse:
|
||||||
text = f"User ID: ".encode("utf-8")
|
print(req.query)
|
||||||
|
return BasicResponse(200, {}, f'Hello, User {req.query["id"]}!'.encode())
|
||||||
return BasicResponse(200, {}, b'Hello, User!')
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class BasicRequest:
|
|||||||
method: str
|
method: str
|
||||||
path: str
|
path: str
|
||||||
headers: dict[str, str]
|
headers: dict[str, str]
|
||||||
query: dict[str, list[str]]
|
query: dict[str, list[str] | str]
|
||||||
body: dict[str, Any]
|
body: dict[str, Any]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -43,7 +43,14 @@ class BasicRequest:
|
|||||||
for key, value in scope.get('headers', []):
|
for key, value in scope.get('headers', []):
|
||||||
headers[key.decode('latin1')] = value.decode('latin1')
|
headers[key.decode('latin1')] = value.decode('latin1')
|
||||||
|
|
||||||
query = urllib.parse.parse_qs(scope['query_string'].decode('latin1'))
|
qs = scope['query_string'].decode('latin1')
|
||||||
|
print(qs)
|
||||||
|
query_raw = urllib.parse.parse_qs(qs)
|
||||||
|
query = {}
|
||||||
|
for k, v in query_raw.items():
|
||||||
|
if len(v) == 1:
|
||||||
|
v = v[0]
|
||||||
|
query[k] = v
|
||||||
|
|
||||||
body = scope['body']
|
body = scope['body']
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user