url函数的name参数
urlpatterns = [
url(regex, views, kwargs=None, name=None)
]
-
name:定义当前url的别名,允许在template中使用该别名来找到对应的url
-
在Django模板中使用name实现链接 可以使用url标签 {% url ‘name’ %}
-
案例,通过一个链接跳转到另一个页面,并传递参数
- 第一步:在templates文件件中创建三个HTML文件
<!-- NBA.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>体育新闻</title> </head> <body> <h2> <a href="#">去湖人队看看</a> </h2> <h2> <a href="#">去火箭队看看</a> </h2> </body> </html>
<!-- lakers.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>湖人队</title> </head> <body> <h1>The Los Angeles lakers</h1> </body> </html>
<!-- lakers.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>火箭队</title> </head> <body> <h1>Houston Rockets</h1> </body> </html>
- 第二步:在views文件中创建两个视图函数,调用templates文件夹中的HTML文件
from django.shortcuts import render # Create your views here. def NBA_views(request): return render(request, "NBA.html") def lakers_views(request): return render(request, "lakers.html") def rockets_views(request, num): '''需要传入一个参数''' return HttpResponse(request, "rockets.html")
- 第三步:在urls文件中配置路由
from django.conf.urls import url from .views import * urlpatterns = [ url(r'^NBA/$', NBA_views), url(r'^lakers/$', lakers_views, name="lakers"), # 给路由取一个别名 url(r'^rockets/(\d+)/$', rockets_views, name="rockets"), # 给路由取一个别名,并传参 ]
- 第四步:在a标签中通过url标签和别名,获取链接地址
<!-- NBA.html --> <body> <h2> <a href="{% url 'lakers' %}">去湖人队看看</a> <!-- 通过url标签和别名,获取链接地址 localhost:8000/news/lakers--> </h2> <h2> <a href="{% url 'rockets' 78 %}">去火箭队看看</a> <!-- rockets为url别名,78为参数 localhost:8000/news/rockets/78 --> </h2> </body>