当前位置 : 主页 > 编程语言 > python >

Django(part16)--URL反向解析

来源:互联网 收集:自由互联 发布时间:2022-06-15
学习笔记,仅供参考,有错必纠 模板 URL反向解析 re_path方法的name关键字 语法 re_path ( regex , views , kwargs = None , name = "别名" ) 通过别名实现地址的反向解析 模板中无参的使用url别名的语

学习笔记,仅供参考,有错必纠


模板



URL反向解析



re_path方法的name关键字



  • 语法
re_path(regex, views, kwargs=None, name = "别名")



  • 通过别名实现地址的反向解析

模板中无参的使用url别名的语法:

{% url '别名' %}

模板中有参的使用url别名的语法:

{% url '别名' '参数值1' '参数值2' %}
//或者
{% url '别名' 变量1 变量2 %}



举个例子

  • 无参数

pages.html

<!DOCTYPE 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/发起请求:

Django(part16)--URL反向解析_django

点击"第3个模板":

Django(part16)--URL反向解析_python_02

可以看到,我们成功跳转到路由为​​page3_template/​​的页面



  • 有参数

somebody_name.html

<!DOCTYPE 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发起请求:

Django(part16)--URL反向解析_python_03

点击超链接:

Django(part16)--URL反向解析_超链接_04

我们跳转到http://127.0.0.1:8000/somebody/info/goat页面

上一篇:Django(part14)--模板的继承
下一篇:没有了
网友评论