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

dor*_*mon 10 python django

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

<a href="{{ root_url }}">Go back home</a>
Run Code Online (Sandbox Code Playgroud)

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

Hen*_*son 16

我认为这里正确的方法是使用{% url %}标签,我假设你的url conf中有一个根URL.

urls.py

url(r'^mah_root/$', 'someapp.views.mah_view', name='mah_view'),
Run Code Online (Sandbox Code Playgroud)

然后在你的模板中:

<a href="{% url mah_view %}">Go back home</a>
Run Code Online (Sandbox Code Playgroud)

  • 另请注意,自Django 1.5起,您需要将URL"name"放在引号中,如下所示:`{%url'mah_view'%}`以区别于同名变量. (3认同)

Nat*_*usa 10

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

<a href="http://{{ request.get_host() }}">Go back home</a>
Run Code Online (Sandbox Code Playgroud)

虽然你可能也会这样做:

<a href="/">Go back home</a>
Run Code Online (Sandbox Code Playgroud)


小智 5

我发现了一个技巧,使用这个标签:

{{ HTTP_HOST }}

你可以这样做:

<a href="{{ HTTP_HOST }}"> back home <a>
Run Code Online (Sandbox Code Playgroud)

或者

<a href="{{ HTTP_HOST }}/what_you_want"> back home <a>
Run Code Online (Sandbox Code Playgroud)