Skip to content Skip to sidebar Skip to footer

How To Get Full Url From Django Request

Is there a better way to get the full url in django than doing the following: url = request.META['HTTP_HOST'] + request.META['PATH_INFO'] + request.META['QUERY_STRING'] Is

Solution 1:

You can get full URL using request.build_absolute_uri method:

FULL_URL_WITH_QUERY_STRING: request.build_absolute_uri()
FULL_URL: request.build_absolute_uri('?')
ABSOLUTE_ROOT: request.build_absolute_uri('/')[:-1].strip("/")
ABSOLUTE_ROOT_URL: request.build_absolute_uri('/').strip("/")

Should this will help full to you.

The best way to use ABSOLUTE URLS in Django, you can create a context_processors or middleware and find your ABSOLUTE_URL and return that so that you can use any where in Django.

Like this example:

defabsolute(request):
    urls = {
        'ABSOLUTE_ROOT': request.build_absolute_uri('/')[:-1].strip("/"),
        'ABSOLUTE_ROOT_URL': request.build_absolute_uri('/').strip("/"),
    }

    return urls

And Then you should use {{ABSOLUTE_ROOT}} in any where into you django template.

Solution 2:

Solution 3:

you can use

in template

{{ request.META.PATH_INFO }}

in views

end_point = request.META.get('PATH_INFO', None)    # not recommend

please use David542's answer

request.build_absolute_uri()

Post a Comment for "How To Get Full Url From Django Request"