django反向解析
反向解析
一:普通路径
在 urls.py 中给路由起别名,name="路由别名"。
path("login1/", views.login, name="login")
在 views.py 中,从 django.urls 中引入 reverse,利用 reverse("路由别名") 反向解析:
return redirect(reverse("login"))
在模板 templates 中的 HTML 文件中,利用 {% url "路由别名" %} 反向解析。
<form action="{% url 'login' %}" method="post">
二:正则路径(无名分组)
在 urls.py 中给路由起别名,name="路由别名"。
re_path(r"^login/([0-9]{2})/$", views.login, name="login")
在 views.py 中,从 django.urls 中引入 reverse,利用 reverse("路由别名",args=(符合正则匹配的参数,)) 反向解析。
return redirect(reverse("login",args=(10,)))
在模板 templates 中的 HTML 文件中利用 {% url "路由别名" 符合正则匹配的参数 %} 反向解析。
<form action="{% url 'login' 10 %}" method="post">
三:正则路径(有名分组)
在 urls.py 中给路由起别名,name="路由别名"。
re_path(r"^login/(?P<year>[0-9]{4})/$", views.login, name="login")
在 views.py 中,从 django.urls 中引入 reverse,利用 reverse("路由别名",kwargs={"分组名":符合正则匹配的参数}) 反向解析。
return redirect(reverse("login",kwargs={"year":3333}))
在模板 templates 中的 HTML 文件中,利用 {% url "路由别名" 分组名=符合正则匹配的参数 %} 反向解析。
<form action="{% url 'login' year=3333 %}" method="post">
参考: Django 路由 | 菜鸟教程 (runoob.com)
Example:
urls.py
from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('admin/', admin.site.urls), path('mainroute/<str:id>/', views.mainr,name="namespacemainroute"), ]
wiews.py
from django.shortcuts import render,HttpResponse,reverse # Create your views here. def mainr(request,id): name="pfer" age=18 print ("locals",locals()) print ("Reverse url",reverse("namespacemainroute",kwargs={'id':id})) print ("Reverse url", reverse("namespacemainroute", args=(id,))) print ("get id",id) return render(request,"mainr.html",{"locals":locals()})
mainr.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>This is {{ locals }}</h1> <h1>This is {{ locals.name }}</h1> <h1>This is {{ locals.age }}</h1> <h1>This is id {{ locals.id }}</h1> <a href="{% url 'namespacemainroute' locals.id %}?province=shanxi">link</a> </body>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 全面指南,95% 的人都不知道的9个技巧(建议收藏)
· 自定义Ollama安装路径
· 本地部署DeepSeek
· 快速入门 DeepSeek-R1 大模型
· DeepSeekV3+Roo Code,智能编码好助手