Django第16部分中,如何实现URL反向解析?

2026-06-10 22:541阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计635个文字,预计阅读时间需要3分钟。

Django第16部分中,如何实现URL反向解析?

学习笔记,仅供参考,有误必纠+模板+URL反向解析+re_path方法的name关键字+语法+re_path( regex, views, kwargs=None, name='别名' )+通过别名实现地址的URL反向解析+模板中无参数的使用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),
]



向127.0.0.1:8000/pages/发起请求:

点击"第3个模板":

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



Django第16部分中,如何实现URL反向解析?

  • 有参数

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)



向127.0.0.1:8000/somebody/name/goat发起请求:

点击超链接:

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

本文共计635个文字,预计阅读时间需要3分钟。

Django第16部分中,如何实现URL反向解析?

学习笔记,仅供参考,有误必纠+模板+URL反向解析+re_path方法的name关键字+语法+re_path( regex, views, kwargs=None, name='别名' )+通过别名实现地址的URL反向解析+模板中无参数的使用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),
]



向127.0.0.1:8000/pages/发起请求:

点击"第3个模板":

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



Django第16部分中,如何实现URL反向解析?

  • 有参数

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)



向127.0.0.1:8000/somebody/name/goat发起请求:

点击超链接:

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