链接到Django中页面的最佳方式

时间:2014-04-08 13:09:08

标签: python django

我设法为索引创建了一个URL标记。但是现在我很困惑如何添加链接到其他页面。

我把它放在我的 urls.py

url(r'^$', 'index', name='index'),

接下来我将这个标签放入href:

{% url 'index' %}

但是,如果我想创建一个新页面并将链接到它,该怎么办?我最好怎样做?

5 个答案:

答案 0 :(得分:7)

接下来你会扩展你的urls.py看起来像这样:

url(r'^$', 'index', name='index'),
url(r'^blog$', 'blog', name='blog'),

然后在你的html中你可以使用其中一个:

<a href="{% url 'index' %}">Home</a>
<a href="{% url 'blog' %}">Blog</a>

您当然可以在任何模板中多次使用模板tage {% url 'index' %}

答案 1 :(得分:4)

只需使用相同的标签{% url 'index' %}即可。 您可以使用urls.py中的每个name链接到网址。

urls.py

url(r'^archive/$', 'mysite.views.archive',name='archive'),
url(r'^about/$', 'mysite.views.about',name='about'),
url(r'^contact/$', 'mysite.views.contact',name='contact'),

模板

<a href="{% url 'about' %}">About</a>
<a href="{% url 'contact' %}">Contact</a>

如果你有很多应用,请使用namespace https://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces-and-included-urlconfs

答案 2 :(得分:2)

Django已将urlpatterns更新为采用“路径”而不是使用url,因此它变得更加高效。您不必再使用正则表达式

from django.urls import path
import views

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

然后在模板中,您可以使用模板标记

<a href="{% url 'index' %}">Index</a>
<a href="{% url 'blog' %}">Blog</a>

如果您有多个应用,则可以按以下方式对其进行标记。例如,如果它在“发布”应用程序下:

app_name = 'post'
urlpatterns=[
    path('', views.index , name='index'),
    path('blog/', views.blog , name='blog'),]

在模板中,您可以执行以下操作:

<a href="{% url 'post:index' %}">Index</a>
<a href="{% url 'post:blog' %}">Blog</a>

答案 3 :(得分:0)

以相同的格式创建一个新网址,并提供该名称而不是索引。

例如:

url(r'^$', 'index', name='index'),
url(r'^new/page/$', 'new', name='new_page'),

{% url 'new_page' %}

答案 4 :(得分:0)

示例:

urlpatterns = patterns('',
                       url(r'^$', views.index, name='index'),
                       url(r'^about/$', views.about', name='about'),
)

现在,在views.index呈现的html模板中,您可以拥有:

<a href ="{% url 'about' %}">about</a>