Django:如何在模板中获取网站的根路径?

时间:2013-04-15 07:19:27

标签: python django

我想为我的网站设计一个返回主页按钮,如何在模板中获取我网站的根路径,以便我可以这样做:

<a href="{{ root_url }}">Go back home</a>

或者我应该首先找出视图中的路径,然后将其传递给模板以通过某些上下文进行渲染。 感谢。

5 个答案:

答案 0 :(得分:15)

我认为这里的正确方法是使用{% url %}标记,我假设你的网址中有一个根网址。

<强> urls.py

url(r'^mah_root/$', 'someapp.views.mah_view', name='mah_view'),

然后在你的模板中:

<a href="{% url mah_view %}">Go back home</a>

答案 1 :(得分:9)

您应该能够访问请求的get_host()方法:

<a href="http://{{ request.get_host() }}">Go back home</a>

虽然你可能也会这样做:

<a href="/">Go back home</a>

答案 2 :(得分:4)

我找到了一个技巧,使用此标签:

{{ HTTP_HOST }}

你可以这样做:

<a href="{{ HTTP_HOST }}"> back home <a>

<a href="{{ HTTP_HOST }}/what_you_want"> back home <a>

答案 3 :(得分:1)

这就是我所做的:

在urls.py中:

from django.contrib import admin
from django.urls import include, path
from django.views.generic import TemplateView

urlpatterns = [
    path('blog/', include('blog.urls')),
    path('admin/', admin.site.urls),
    path('', TemplateView.as_view(template_name='landing.html'), name='landing')
]

然后,在任何视图中:

<a href="{% url 'landing' %}">Site Title</a>

当您单击链接时,它将解析为localhost:8000 /或site.domain.com/(无论您使用的是哪个)

答案 4 :(得分:0)

请参考标准Django示例:

urlpatterns = [
    path('', views.index, name='index'),
]

然后是模板代码:

href="{% url 'index' %}"

也可以。