Django URL反向解析reverse()传参实战详解

拾柒
拾柒
发布时间:2026-10-13 | 3人浏览过
原创

本文详解Django中reverse函数的反向解析用法,重点讲解如何在路径包含动态参数时,通过reverse函数在视图间传递参数。结合views.py与urls.py代码示例,展示从index重定向至error并计算求和的完整流程,帮助开发者掌握URL反向解析的核心技巧。

Django reverse函数传参概述

本文旨在解决Django URL路径中携带参数的反向解析问题。

reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)

参考文件:book/views.py

视图层views.py实现


from django.http import HttpResponse
from django.shortcuts import render,redirect,reverse

# Create your views here.
def index(request):
  username = request.GET.get("username")
  if username is not None:
    return HttpResponse("welcome!")
  else:
    return redirect(reverse('loose',kwargs={'a':100,'b':200}))

def error(request,a,b):
  sum=a+b
  return HttpResponse("<h1>sum:{}</h1>".format(sum))

参考文件:book/urls.py

路由层urls.py配置


from django.urls import path
from . import views

urlpatterns = [
  path('', views.index,name='index'),
  path('error/<int:a>/<int:b>', views.error,name='loose'),
]

反向解析执行流程分析

核心流程如下:服务器启动后,首先调用views中的index函数。由于请求中未提供username参数,程序会执行重定向逻辑,跳转至命名空间为loose的error视图(即调用error函数)。此时,error函数需要接收a和b两个参数,必须借助reverse函数才能将这些参数正确传递下去。

以上即为本次关于Django URL反向解析及参数传递的全部相关知识点,感谢大家的学习和对本站的支持。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表