def get_data_from_request(self, request):
if request.method != 'GET':
try:
if hasattr(request, 'body'):
# Django 1.4+
raw_data = request.body
else:
raw_data = request.raw_post_data
data = raw_data if raw_data else request.POST
except Exception:
# assume we had a partial read:
data = '<unavailable>'
else:
data = None
environ = request.META
result = {
'body': data,
'env': dict(get_environ(environ)),
'headers': dict(get_headers(environ)),
'method': request.method,
'socket': {
'remote_address': request.META.get('REMOTE_ADDR'),
'encrypted': request.is_secure()
},
'cookies': dict(request.COOKIES),
}
if hasattr(request, 'get_raw_uri'):
# added in Django 1.9
url = request.get_raw_uri()
else:
try:
# Requires host to be in ALLOWED_HOSTS, might throw a
# DisallowedHost exception
url = request.build_absolute_uri()
except DisallowedHost:
# We can't figure out the real URL, so we have to set it to
# DisallowedHost
result['url'] = {'raw': 'DisallowedHost'}
url = None
if url:
result['url'] = get_url_dict(url)
return result
评论列表
文章目录