📜  如何在 django 模板中获取当前页面 url - Python (1)

📅  最后修改于: 2023-12-03 15:38:15.077000             🧑  作者: Mango

如何在 Django 模板中获取当前页面 URL

在开发 Django 网站时,我们经常需要获取当前页面的 URL,以便进行某些操作,比如分享、跳转等。本文将介绍如何在 Django 模板中获取当前页面 URL。

方法一:使用 request.path

Django 的 request 对象包含了当前请求的所有信息,包括请求的 path、参数、请求方式等。因此,我们可以使用 request.path 属性来获取当前页面的 URL。

<p>当前页面的 URL 是:{{ request.path }}</p>
方法二:使用 request.get_full_path

如果我们还需要获取当前页面的查询参数,可以使用 request.get_full_path 方法。

<p>当前页面的 URL 是:{{ request.get_full_path }}</p>
方法三:使用 request.build_absolute_uri

如果我们需要获取绝对路径,可以使用 request.build_absolute_uri 方法。

<p>当前页面的 URL 是:{{ request.build_absolute_uri }}</p>
注意事项
  • 在使用 request 对象时,需要保证它在模板中可用,即需要将 request 对象传递给模板。例如:
def my_view(request):
    return render(request, 'my_template.html', {'request': request})
  • 如果我们需要在多个模板中获取当前页面 URL,可以使用模板上下文处理器,在模板上下文中添加 request 对象,这样就可以在模板中直接使用 {{ request.path }} 等。例如:
def my_context_processor(request):
    return {'request': request}

将此处理器添加到 settings.py 文件的 TEMPLATES 配置中:

'OPTIONS': {
    'context_processors': [
        # ...
        'myapp.my_context_processor',
    ],
},

现在,我们就可以在任何模板中获取当前页面 URL 了。

总结

本文介绍了三种在 Django 模板中获取当前页面 URL 的方法,分别是使用 request.pathrequest.get_full_pathrequest.build_absolute_uri。在实际开发中,我们需要根据情况选择合适的方法来获取 URL。