学习笔记,仅供参考,有错必纠 模板 URL反向解析 re_path方法的name关键字 语法 re_path ( regex , views , kwargs = None , name = "别名" ) 通过别名实现地址的反向解析 模板中无参的使用url别名的语
学习笔记,仅供参考,有错必纠
模板
URL反向解析
re_path方法的name关键字
- 语法
- 通过别名实现地址的反向解析
模板中无参的使用url别名的语法:
{% url '别名' %}模板中有参的使用url别名的语法:
{% url '别名' '参数值1' '参数值2' %}//或者
{% url '别名' 变量1 变量2 %}
举个例子
- 无参数
pages.html
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Yes!</title>
</head>
<body>
<ul>
<li><a href="{% url 'page2' %}" >第2个模板</a></li>
<li><a href="{% url 'page3' %}" >第3个模板</a></li>
</ul>
</body>
</html>
views.py
def pages(request):return render(request, "pages.html")
urls.py
urlpatterns = [path('admin/', admin.site.urls),
re_path(r'page2_template/$', views.page2_template, name = "page2"),
re_path(r'page3_template/$', views.page3_template, name = "page3"),
re_path(r'pages/$', views.pages),
]
向http://127.0.0.1:8000/pages/发起请求:
点击"第3个模板":
可以看到,我们成功跳转到路由为page3_template/的页面
- 有参数
somebody_name.html
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Yes!</title>
</head>
<body>
<h1>姓名:{{ name }}</h1>
<h1><a href="{% url 'info' name%}">跳转到{{ name }}的个人信息页</a></h1>
</body>
</html>
urls.py
urlpatterns = [path('admin/', admin.site.urls),
re_path(r'somebody/name/(\w+)$', views.somebody_name, name = "name"),
re_path(r'somebody/info/(\w+)$', views.somebody_info, name = "info"),
]
views.py
def somebody_name(request, name):return render(request, "somebody_name.html", locals())
def somebody_info(request, name):
html = name + "的个人信息"
return HttpResponse(html)
向http://127.0.0.1:8000/somebody/name/goat发起请求:
点击超链接:
我们跳转到http://127.0.0.1:8000/somebody/info/goat页面