url – Django模板标签

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标签。考虑一个名为geeksforgeeks的项目,有一个名为geeks的应用程序。

现在创建两个视图,我们将通过它们访问模板。
在 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中创建一个模板。

<html>
<h1>Template 1</h1>
<!-- Link to template 2 -->
<a href = "{% url 'template2' %}">Go to template 2</a>
</html>

在geeks.html中创建一个模板。

<html>
<<h2>Template 2</h2>
<!-- Link to template 1 -->
<a href = "{% url 'template1' %}">Go to template 1</a>
</html>

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

url - Django模板标签
点击该链接,它将重定向到其他网址。

url - Django模板标签

高级用法

假设你有一个视图,app_views.client ,它的URLconf需要一个客户端ID(这里,client()是视图文件app_views.py中的一个方法)。URLconf行可能看起来像这样。

path('client/<int:id>/', 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/。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程