You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中配置多自定义应用路径及实现应用间切换?

Django跨应用路由配置与页面跳转实操指南

我来一步步给你梳理清楚怎么在你的MyProject里实现从HappyHomes到HappyHomesAdmin的跳转,包括路由配置和视图里的跳转逻辑:

一、URL路由配置:总共要修改3个文件

首先得把两个应用的路由都配置好,具体步骤如下:

1. 给两个应用分别创建独立的urls文件(如果还没建的话)

先在HappyHomes和HappyHomesAdmin这两个应用的目录下,各自新建一个urls.py文件——这是Django拆分应用路由的标准做法,能让代码更清晰、易维护。

2. 配置应用内的路由

  • 打开HappyHomes/urls.py,注册reg页面的路由:
from django.urls import path
from . import views

urlpatterns = [
    # name参数是路由的唯一标识,后续跳转依赖它,一定要设置
    path('reg/', views.reg_view, name='reg_page'),
]
  • 再打开HappyHomesAdmin/urls.py,配置home页面的路由:
from django.urls import path
from . import views

urlpatterns = [
    path('home/', views.admin_home_view, name='admin_home_page'),
]

3. 配置项目根目录的urls.py

把两个应用的路由挂载到项目的根路由上,这样Django才能正确匹配到各个应用的页面:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 给HappyHomes的路由统一加前缀happyhomes/
    path('happyhomes/', include('HappyHomes.urls')),
    # 给HappyHomesAdmin的路由统一加前缀happyhomesadmin/
    path('happyhomesadmin/', include('HappyHomesAdmin.urls')),
]

现在你访问/happyhomes/reg/就能打开reg.html,访问/happyhomesadmin/home/就能打开home.html了。

二、在views.py中设置跨应用跳转

有两种常用方式,推荐第一种,灵活性更高:

1. 用reverse()生成跳转URL(推荐)

在HappyHomes/views.py的reg视图函数里,处理完业务逻辑后,通过路由的name参数跳转,这样就算以后修改路由前缀,也不用改动这里的代码:

from django.shortcuts import render, redirect
from django.urls import reverse

def reg_view(request):
    # 这里写你的业务逻辑,比如用户注册表单验证
    if request.method == 'POST':
        # 假设注册成功,跳转到管理员首页
        return redirect(reverse('admin_home_page'))
    # GET请求时返回reg页面
    return render(request, 'reg.html')

2. 直接硬编码URL(不推荐)

如果图一时省事,也可以直接写死URL,但后续路由变更时需要手动修改,维护成本高:

from django.shortcuts import render, redirect

def reg_view(request):
    if request.method == 'POST':
        return redirect('/happyhomesadmin/home/')
    return render(request, 'reg.html')

三、模板里直接加跳转链接(从reg.html跳转到home.html)

如果是在reg.html页面里加跳转按钮或链接,用Django的模板标签{% url %}是最稳妥的:

<!-- 在HappyHomes/templates/reg.html里添加 -->
<button><a href="{% url 'admin_home_page' %}">进入管理员后台</a></button>

这样不管以后路由前缀怎么调整,只要admin_home_page这个name不变,链接就永远有效。

内容的提问来源于stack exchange,提问作者Maitri Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 23:02:35