Django中链接到页面的最佳方法
我成功地为我的索引创建了一个网址标签。但现在我有点困惑,怎么才能添加链接到其他页面呢。
我把这个放在我的 urls.py 文件里。
url(r'^$', 'index', name='index'),
接下来,我把这个标签放进了 href 里:
{% url 'index' %}
但是如果我想创建一个新页面,并且想链接到这个新页面,我该怎么做才是最好的呢?
6 个回答
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>
2
使用下面的语法:
<a href="{% url 'cart' %}" > Cart page </a>
这里的 'cart' 是你应用程序网址模式中的一个名称字段。
urlpatterns = [
#Leave as empty string for base url
path('', views.shop, name="store"),
path('cart/', views.cart, name="cart"),--------------------->
path('checkout/', views.checkout, name="checkout"),
path('shop/',views.shop, name="shop"),
]
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
33
Django 更新了网址模式(urlpatterns),现在用 'path' 来代替之前的 'url',这样效率更高了。你不需要再使用复杂的正则表达式了。
from django.urls import path
from . 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>
如果你有多个应用程序,可以这样标记。例如,如果这是在 'post' 应用下:
在 post 应用的 urls.py 文件中:
from django.urls import path
from . import views
app_name = 'post'
urlpatterns=[
path('', views.index , name='index'),
path('blog/', views.blog , name='blog'),]
在项目的 urls.py 文件中:
from django.urls import path, include
urlpatterns=[
path('post/', include('post.urls'),]
在模板中,你可以这样做:
<a href="{% url 'post:index' %}">Index</a>
<a href="{% url 'post:blog' %}">Blog</a>
32
接下来,你需要把你的 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>
当然,你可以在任何模板中根据需要多次使用模板标签 {% url 'index' %}
。