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

将path改为re_path后Django除首页外页面空白问题求助

问题分析与解决方案

问题出在URL匹配顺序和正则表达式的匹配逻辑上:

re_path('', include('home.urls')) 使用空字符串作为正则匹配规则,会匹配所有包含空字符串的URL(也就是所有URL),而且它的位置在users/、accounts/路由之前,导致所有非admin/的请求都会优先进入home.urls处理。而home.urls中只配置了首页的路由,其他页面的请求在这里匹配不到对应视图,因此返回空白,后续的users/、accounts/路由根本没有机会被执行。

修复步骤

  1. 调整路由顺序
    将home.urls的include路由移到所有路由的最后,这样只有当admin/、users/、accounts/的路由都不匹配时,才会进入home.urls处理:
from django.urls import re_path
from django.conf.urls import include
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    re_path('admin/', admin.site.urls),
    re_path("users/", include("django.contrib.auth.urls")), 
    re_path("users/", include("users.urls")),  
    re_path("accounts/", include("accounts.urls")),
    re_path('', include('home.urls')),  # 移至末尾
]
  1. 额外检查项
  • 确认users、accounts等子应用的URLconf中,re_path的正则表达式是否正确:比如原path('profile/', ...)需要对应re_path(r'^profile/', ...)(前缀匹配)或re_path(r'^profile/$', ...)(精确匹配)。
  • 验证视图函数是否正常返回响应:可以在对应视图中添加print("视图被调用")之类的日志,确认请求是否真的到达了目标视图。如果视图未被调用,说明路由匹配仍有问题;如果视图被调用但返回空白,需检查模板路径是否正确、模板内容是否存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:50:47