Django里面,多个APP的url怎么设置

在Django中,多个APP的URL设置主要通过以下两种方式实现:

1. ‌独立URL文件分发(推荐)‌

步骤‌:

1、在每个APP目录下创建独立的urls.py文件(如app01/urls.py、app02/urls.py)。

python 复制代码
# app01/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),  # 根路径对应index视图
    path('student/', views.student),  # 子路径对应student视图
]

2、在项目根目录的urls.py中通过include()包含这些APP的URL配置:

python 复制代码
# 项目根目录 urls.py
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app1/', include('app01.urls')),  # 包含app01的URL
    path('app2/', include('app02.urls')),  # 包含app02的URL
]

优点‌:逻辑清晰,便于维护;支持命名空间(如app_name='app01')。
2. ‌集中配置在项目根目录‌

步骤‌:

直接在项目根目录的urls.py中定义所有APP的路由:

python 复制代码
# 项目根目录 urls.py
from django.urls import path
from app01 import views as app01_views
from app02 import views as app02_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app1/', app01_views.index),  # 直接映射视图
    path('app2/', app02_views.index),
]

缺点‌:当APP数量增加时,配置文件会变得冗长且难以管理。
关键注意事项:

命名空间‌:使用app_name为每个APP的URL分组(如app_name='app01'),避免路由冲突。

路径分发‌:通过include()将子路径分发到对应APP的urls.py,如path('app1/', include('app01.urls'))。

版本兼容性‌:Django 2.x/3.x推荐使用path()和re_path()代替旧版的url()。

示例代码

python 复制代码
# 项目根目录 urls.py
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('app1/', include('app01.urls', namespace='app1')),  # 命名空间
    path('app2/', include('app02.urls', namespace='app2')),
]

# app01/urls.py
from django.urls import path
from . import views

app_name = 'app01'  # 命名空间
urlpatterns = [
    path('', views.index, name='index'),  # 命名路由
    path('student/', views.student, name='student'),
]

通过上述方式,可高效管理多个APP的URL配置,确保项目结构清晰且易于扩展。

相关推荐
BYSJMG1 天前
2026计算机毕设推荐:基于大数据的车辆二氧化碳排放量可视化分析系统
大数据·vue.js·python·mysql·django·课程设计
WangYaolove13142 天前
基于opencv的疲劳检测系(源码+文档)
python·mysql·django·毕业设计·源码
luoluoal3 天前
基于python的人脸识别的酒店客房入侵检测系统(源码+文档)
python·mysql·django·毕业设计·源码
Blossom.1183 天前
从数字大脑到物理实体:具身智能时代的大模型微调与部署实战
人工智能·python·深度学习·fpga开发·自然语言处理·矩阵·django
墨染青竹梦悠然3 天前
基于Django+vue的零食商城
python·django
WangYaolove13144 天前
基于Python的旅游城市关键词分析
python·django·毕业设计·源码·计算机源码
历程里程碑5 天前
滑动窗口---- 无重复字符的最长子串
java·数据结构·c++·python·算法·leetcode·django
DingYuan1015 天前
Django模板继承详解
django
WangYaolove13145 天前
基于python的漏洞扫描系统(源码+文档)
python·mysql·django·毕业设计·源码
上半场结束,中场已休息,下半场ing6 天前
111111111
django