Djangoで現在アクセスされているページのURLを取得する
Djangoで現在アクセスされているページのURLを取得する方法です。
view.py
ドメインのみ
request.get_host()
# e.g. sampel.com
ドメイン+プロトコル
"{0}://{1}".format(request.scheme, request.get_host())
# e.g. https://sample.com
パラメータなしパス
request.path
# e.g. /foo/
パラメータありパス
request.get_full_path
# e.g. /foo/?v=1.0
パラメータなしURL
"{0}://{1}{2}".format(request.scheme, request.get_host(), request.path)
# e.g. https://sample.com/foo/
パラメータありURL
request.build_absolute_uri()
# e.g. https://sample.com/foo/?v=1.0
Template
テンプレート中でアクセスしているURLを表示するためにsetting.pyの
に次の設定を追加します。TEMPLATES
TEMPLATES = [
...
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
],
},
...
]
ドメイン
{{ request.get_host }}
{# e.g. sampel.com #}
ドメイン+プロトコル
{{ request.scheme }}://{{ request.get_host }}
{# e.g. https://sample.com #}
パラメータなしパス
{{ request.path }}
{# e.g. /foo/ #}
パラメータありパス
{{ request.get_full_path }}
{# e.g. /foo/?v=1.0 #}
パラメータありURL
{{ request.build_absolute_uri }}
{# e.g. https://sample.com/foo/?v=1.0 #}