Skip to content

request.py

Provides utils for parsing request data.

parse_body(environ)

Extract request body from WSGI environ.

Source code in jetweb/utils/request.py
32
33
34
35
36
37
38
def parse_body(environ: dict) -> bytes:
    """
    Extract request body from WSGI environ.
    """
    content_length = int(environ.get("CONTENT_LENGTH") or 0)
    readable = environ["wsgi.input"]
    return readable.read(content_length)

parse_headers(environ)

Extract request headers from WSGI environ.

Source code in jetweb/utils/request.py
17
18
19
20
21
22
23
24
25
26
27
28
29
def parse_headers(environ: dict) -> CaseInsensitiveDict:
    """
    Extract request headers from WSGI environ.
    """
    filtered_headers = filter(
        lambda item: item[0].startswith("HTTP_") or item[0] in ("CONTENT_TYPE", "CONTENT_LENGTH"),
        environ.items(),
    )
    formatted_headers = map(
        lambda item: ("-".join(item[0].replace("HTTP_", "").split("_")), item[1]),
        filtered_headers,
    )
    return CaseInsensitiveDict(formatted_headers)

parse_query_params(environ)

Extract request query parameters from WSGI environ.

Source code in jetweb/utils/request.py
10
11
12
13
14
def parse_query_params(environ: dict) -> CaseInsensitiveDict:
    """
    Extract request query parameters from WSGI environ.
    """
    return CaseInsensitiveDict(parse_qsl(environ["QUERY_STRING"], True))