Note_Tech

All technological notes.


Project maintained by simonangel-fong Hosted on GitHub Pages — Theme by mattgraham

Django - Response objects

Back


HttpResponse Objects


HttpResponse Class

HttpResponse(content=b'', content_type=None, status=200, reason=None, charset=None, headers=None)

HttpResponse subclasses

Subclass Description Status code
HttpResponseRedirect() redirect to a target url 302
HttpResponsePermanentRedirect() returns a permanent redirect 301
HttpResponseNotModified() a page hasn’t been modified since last request 304
HttpResponseBadRequest() 400 status code. 400
HttpResponseNotFound() 404 status code. 404
HttpResponseForbidden() 403 status code. 403
HttpResponseNotAllowed() 405 status code. 405
HttpResponseGone() 410 status code. 410
HttpResponseServerError() 500 status code. 500

JsonResponse Objects

JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)
from django.http import JsonResponse
response = JsonResponse({"foo": "bar"})   # a dict object
response = JsonResponse([1, 2, 3], safe=False)    #  a non-dict object

StreamingHttpResponse Objects


FileResponse objects

FileResponse(open_file, as_attachment=False, filename='', **kwargs)
from django.http import FileResponse
response = FileResponse(open("myfile.png", "rb"))

django.shortcuts Module


render()

render(request, template_name, context=None, content_type=None, status=None, using=None)

redirect()

from django.shortcuts import redirect

# By passing some object; that object’s get_absolute_url() method will be called to figure out the redirect URL
def my_view(request):
    obj = MyModel.objects.get(...)
    return redirect(obj)


# By passing the name of a view and optionally some positional or keyword arguments; the URL will be reverse resolved using the reverse() method:
def my_view(request):
    return redirect("some-view-name", foo="bar")

# By passing a hardcoded URL to redirect to
def my_view(request):
    return redirect("/some/url/")

get_object_or_404()

get_object_or_404(klass, *args, **kwargs)
from django.shortcuts import get_object_or_404


def my_view(request):
    obj = get_object_or_404(MyModel, pk=1)

# equivalent to
def my_view(request):
    try:
        obj = MyModel.objects.get(pk=1)
    except MyModel.DoesNotExist:
        raise Http404("No MyModel matches the given query.")

get_list_or_404()

get_list_or_404(klass, *args, **kwargs)
from django.shortcuts import get_list_or_404


def my_view(request):
    my_objects = get_list_or_404(MyModel, published=True)

# equivalent to
def my_view(request):
    my_objects = list(MyModel.objects.filter(published=True))
    if not my_objects:
        raise Http404("No MyModel matches the given query.")

TOP