Django里面,多个APP的url设置,每个APP单独对应HTML设置

Django 中采用了 MVT (Model-Template-View) 设计模式,类似于 MVC,但有一些区别:

  • Model (模型):与数据库交互,处理数据的创建、读取、更新、删除。

  • Template (模板):负责页面渲染,生成最终的 HTML 内容。

  • View (视图):Django 的 View 更偏向于控制器的角色,接收请求并决定使用哪个模板和数据。

流程:

  1. 用户访问 URL,请求被 Django 的 urls.py 映射到相应的 View。

  2. View 处理业务逻辑,调用 Model 获取数据。

  3. View 将数据传递给 Template。

  4. Template 渲染 HTML,最终返回给用户

以下是Django中多个APP的URL设置及HTML模板映射实现:

1、项目根目录 urls.py

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

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

2、app01/views.py

python 复制代码
# app01/views.py
from django.shortcuts import render

def index(request):
    return render(request, 'app01/index.html')  # 渲染app01的index.html

def student(request):
    return render(request, 'app01/student.html')  # 渲染app01的student.html

3、app01/urls.py

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

app_name = 'app01'  # 命名空间
urlpatterns = [
    path('', views.index, name='index'),  # 根路径对应index视图
    path('student/', views.student, name='student'),  # 子路径对应student视图
]

4、app02/views.py

python 复制代码
# app02/views.py
from django.shortcuts import render

def home(request):
    return render(request, 'app02/home.html')  # 渲染app02的home.html

5、app02/urls.py

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

app_name = 'app02'  # 命名空间
urlpatterns = [
    path('', views.home, name='home'),  # 根路径对应home视图
]

​​代码说明:

  1. 项目根目录的urls.py通过include()包含各APP的路由配置,实现路径分发。
  2. 每个APP独立维护urls.py和views.py,通过命名空间避免路由冲突。
  3. 视图函数使用render()渲染对应APP目录下的HTML模板(如app01/index.html)。
  4. 命名空间(app_name)支持反向解析URL(如{% url 'app1:index' %})。
  5. 通过路径分发(如path('app1/', include('app01.urls')))实现多APP路由隔离。
相关推荐
倔强的石头_1 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
anOnion3 天前
构建无障碍组件之Menu Button pattern
前端·html·交互设计
米丘3 天前
微前端之 Web Components 完全指南
微服务·html
倔强的石头_4 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab5 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence5 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神5 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据6 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡6 天前
【MySQL数据库】数据类型与表约束
数据库·mysql