Django


1350 浏览 5 years, 3 months

8 Request

版权声明: 转载请注明出处 http://www.codingsoho.com/
Django获取当前页面URL
url = request.META['HTTP_HOST'] + request.META['PATH_INFO'] + request.META['QUERY_STRING']

以下面网址为例

http://127.0.0.1:8001/about/?q=1

主机 路径 Query字符串
request.META['HTTP_HOST'] request.META['PATH_INFO'] request.META['QUERY_STRING']
http://127.0.0.1:8001 /about/ q=1

但更好的方法是通过 request.build_absolute_uri 方法得到

FULL_URL_WITH_QUERY_STRINg FULL_URL ABSOLUTE_ROOT ABSOLUTE_ROOT_URL
request.build_absolute_uri() request.build_absolute_uri('?') request.build_absolute_uri('/')[:-1].strip("/") request.build_absolute_uri('/').strip("/")
http://127.0.0.1:8001/about/?q=1 http://127.0.0.1:8001/about/ http://127.0.0.1:8001 http://127.0.0.1:8001

其他的获取URL的方法

获取带参数URL 获取不带参数URL 获取主机地址
request.get_full_path() request.path request.get_host()
/about/?q=1 /about/ 127.0.0.1:8001

获取完整的带域名可以用request.META.get('HTTP_REFERER')或者django.contrib.sites.get_current_site(request)