Django框架下配置iframe加载导航栏对应页面的URL配置问题
问题原因排查与解决方案
你当前配置失效的核心问题出在urls.py的语法和路由规则冲突,具体问题点如下:
- 导入语法错误:
django.views.generic,base里的逗号应为点,正确导入路径是django.views.generic.base - 重复路由冲突:你同时定义了两个name为
welcomeAdmin的路由,Django会优先匹配先写的TemplateView路由,但TemplateView指定的模板路径和你实际存放路径不匹配,且和你写的自定义视图重复冲突 - 缺失依赖导入:使用
url()函数但没有提前导入,Django 3.x+版本更推荐用re_path()替代旧版url() - 路由规范问题:路由路径末尾缺斜杠,和Django默认的APPEND_SLASH重定向规则冲突,容易出现404
修正后的APP urls.py代码
from django.urls import path from . import views urlpatterns = [ path('', views.homeAdmin, name='homeAdmin'), path('welcomeAdmin/', views.welcomeAdmin, name='welcomeAdmin'), path('category/', views.category, name='category'), path('company/', views.company, name='company'), path('register/', views.register, name='register'), path('role/', views.role, name='role'), path('supplier/', views.supplier, name='supplier'), ]
额外必检配置
- 确认项目根目录下的urls.py(和settings.py同目录)已经包含当前APP的路由:
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), # 替换为你自己的APP名称 path('', include('你的APP名.urls')), ]
- 确认settings.py的INSTALLED_APPS列表中已经添加了你创建的APP
- 确认所有HTML文件存放路径为
你的APP名/templates/你的APP名/,和视图中render的模板路径你的APP名/xxx.html对应
修改完成后重启Django服务,点击导航栏链接即可在指定iframe中加载对应页面。
内容的提问来源于stack exchange,提问作者Fernando
相关产品推荐
相关产品推荐

