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配置,确保项目结构清晰且易于扩展。

相关推荐
漫随流水21 小时前
旅游推荐系统(getEchartsData.py)
python·django·旅游
计算机徐师兄21 小时前
Python基于Django的高校档案安全管理系统(附源码,文档说明)
python·django·高校档案安全管理系统·python高校档案安全管理·python高校档案管理系统·高校档案·高校档案管理系统
WangYaolove13141 天前
基于循环神经网络的情感分类(源码+文档)
python·mysql·django·毕业设计·源码
漫随流水1 天前
旅游推荐系统(基于用户的协同过滤recommendation.py)
python·django·旅游·协同过滤
漫随流水2 天前
旅游推荐系统(urls.py配置URL)
python·django·旅游·url
cramer_50h2 天前
Python的web开发框架Django再次更新
前端·python·django
杰杰7982 天前
一文了解DRF——ModelSerializer
后端·django
龙腾AI白云3 天前
数字孪生底层逻辑和技术
深度学习·django·flask·fastapi·tornado
AC赳赳老秦3 天前
OpenClaw 全平台安装详解:Windows 10/11、macOS、Linux 零踩坑指南 (附一键脚本)
大数据·人工智能·python·django·去中心化·ai-native·openclaw
Mr数据杨3 天前
【Dv3Admin】Vue3一键配置权限规则
django