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路由隔离。
相关推荐
CCPC不拿奖不改名几秒前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
爬也要爬着前进2 小时前
redis主从搭建
数据库·redis·缓存
@Mike@2 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
踏月的造梦星球3 小时前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle
笃行3503 小时前
国产化落地避坑 · 干货向|Oracle 迁金仓 KES,我把外连接消除排在隐性陷阱第一位
数据库
老纪的技术唠嗑局4 小时前
花一年时间整理出的:AI 数据库混合搜索入门实践
数据库
川石课堂软件测试4 小时前
安全测试|常见SQL注入攻击方式、实例及预防
服务器·数据库·sql·功能测试·测试工具·安全·单元测试
笃行3505 小时前
国产化落地避坑 · 干货向|迁移后那条「测试能过、一上生产就查空」的 SQL,多半栽在 WHERE 函数顺序上
数据库
蓝田~5 小时前
MySQL慢查询怎么优化?B+Tree索引原理+MVCC读不阻塞写+EXPLAIN执行计划,从5秒到0.05秒
数据库·mysql
sunxunyong6 小时前
doris用户资源组配置
数据库