mirror of
https://github.com/django/daphne.git
synced 2025-07-13 17:32:17 +03:00
37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
from django.http import HttpRequest
|
|
from django.utils.datastructures import MultiValueDict
|
|
|
|
|
|
def encode_request(request):
|
|
"""
|
|
Encodes a request to JSON-compatible datastructures
|
|
"""
|
|
# TODO: More stuff
|
|
value = {
|
|
"GET": request.GET.items(),
|
|
"POST": request.POST.items(),
|
|
"COOKIES": request.COOKIES,
|
|
"META": {k: v for k, v in request.META.items() if not k.startswith("wsgi")},
|
|
"path": request.path,
|
|
"path_info": request.path_info,
|
|
"method": request.method,
|
|
"response_channel": request.response_channel,
|
|
}
|
|
return value
|
|
|
|
|
|
def decode_request(value):
|
|
"""
|
|
Decodes a request JSONish value to a HttpRequest object.
|
|
"""
|
|
request = HttpRequest()
|
|
request.GET = MultiValueDict(value['GET'])
|
|
request.POST = MultiValueDict(value['POST'])
|
|
request.COOKIES = value['COOKIES']
|
|
request.META = value['META']
|
|
request.path = value['path']
|
|
request.method = value['method']
|
|
request.path_info = value['path_info']
|
|
request.response_channel = value['response_channel']
|
|
return request
|