Skip to content

Instantly share code, notes, and snippets.

@defrex
Last active September 8, 2023 14:33
Show Gist options
  • Star 27 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save defrex/6140951 to your computer and use it in GitHub Desktop.
Save defrex/6140951 to your computer and use it in GitHub Desktop.
A simple function to print a Django request the way requests are meant to be printed.
def pretty_request(request):
headers = ''
for header, value in request.META.items():
if not header.startswith('HTTP'):
continue
header = '-'.join([h.capitalize() for h in header[5:].lower().split('_')])
headers += '{}: {}\n'.format(header, value)
return (
'{method} HTTP/1.1\n'
'Content-Length: {content_length}\n'
'Content-Type: {content_type}\n'
'{headers}\n\n'
'{body}'
).format(
method=request.method,
content_length=request.META['CONTENT_LENGTH'],
content_type=request.META['CONTENT_TYPE'],
headers=headers,
body=request.body,
)
@andre-fuchs
Copy link

Thanks!

@jonholdsworth
Copy link

Much obliged!

@PasaOpasen
Copy link

replaced body with pprint.pformat(json.loads(request.body), indent=2)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment