📜  url – Django 模板标签

📅  最后修改于: 2022-05-13 01:55:38.964000             🧑  作者: Mango

url – Django 模板标签

Django 模板是使用 Django 模板语言标记的文本文档或Python字符串。 Django 是一个强大的包含电池的框架,为在模板中呈现数据提供了便利。 Django 模板不仅允许将数据从视图传递到模板,而且还提供了一些有限的编程功能,例如变量、for 循环、注释、扩展、url 等。
本文围绕如何在模板中使用url 标签展开。 url标记返回与给定视图和可选参数匹配的绝对路径引用(没有域名的 URL)。这是一种在不违反 DRY 原则的情况下输出链接的方法,因为它必须在模板中对 URL 进行硬编码:

句法
{% url 'some-url-name' v1 v2 %}

第一个参数是 URL 模式名称。它可以是带引号的字面量或任何其他上下文变量。附加参数是可选的,并且应该是空格分隔的值,将用作 URL 中的参数。

例子
{% url 'template1' %}

url – Django 模板标签说明

使用示例说明如何在 Django 模板中使用 url 标签。考虑一个名为geeks的项目,它有一个名为geeksforgeeks的应用程序。

现在创建两个视图,我们将通过它们访问模板,
geeks/views.py中,

# import Http Response from django
from django.shortcuts import render
   
# create a function
def geeks_view(request):
    # return response
    return render(request, "geeks.html")
  
def nav_view(request):
    # return response
    return render(request, "nav.html")

创建一个 url 路径以映射到此视图。 URL 需要有一个名称,然后可以在模板中使用并带有url 标签。在geeks/urls.py中,

from django.urls import path
  
# importing views from views..py
from .views import geeks_view, nav_view
  
urlpatterns = [
    path('1/', geeks_view, name = "template1"),
    path('2/', nav_view, name = "template2"),
]

现在我们将创建两个模板来演示now 标签。在geeks.html中创建一个模板,


Template 1

Go to template 2

geeks.html中创建一个模板,


<

Template 2

Go to template 1

现在访问http://127.0.0.1:8000/1,

url-django-模板标签
单击链接,它将重定向到其他 url。

url-djago-模板标签

高级用法

假设您有一个视图app_views.client ,其 URLconf 采用客户端 ID(这里,client() 是视图文件 app_views.py 中的一个方法)。 URLconf 行可能如下所示:

path('client//', app_views.client, name='app-views-client')

如果此应用的 URLconf 包含在项目的 URLconf 中,则路径如下:

path('clients/', include('project_name.app_name.urls'))

…然后,在模板中,您可以创建指向此视图的链接,如下所示:

{% url 'app-views-client' client.id %}

模板标签将输出字符串/clients/client/123/。