1.name参数:
形式:path(“goods/”, views.goods, name=“abc”)
给路由goods/ 起个别名,方便在模板中引用该路径
2.额外参数:
形式: path(“goods/”, views.goods, {“goods_name”: goods_name})
该参数没有具体命名,只要是字典形式即可,而且该参数只能在视图函数中读取和使用
3.context参数
render(request, “index.html”, context={“title”: "首页’})
对html模板的变量赋值,以字典格式表示,默认情况下是一个空字典,context关键字可省略
如:render(request, “index.html”, {“title”: "首页’})
话不多说,代码伺候:
urls.py
path("goods/", views.goods, name="goods"),
path("goods_info/", views.goodsInfo, name="goods_info",{"goods_name":goods_name})
views.py
def goods(request):
return render(request, 'index.html',context={"title":"首页"})
def goodsInfo(request,goods_name):
return render(request, 'goods_info.html',context={"goods_name": goods_name})
# 视图函数接收path传递过来的额外参数,并通过render函数的context参数传递给模板goods_info.html
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{title}}</title> # 接受传递过来的context参数
</head>
<body>
<a href="{% url 'goods_info' %}">跳转到商品详情页</a> # 使用name参数
</body>
</html>
goods_info.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>商品详情页</title>
</head>
<body>
{{goods_name}} # 展示接收到的context参数
</body>
</html>