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路由隔离。
相关推荐
小羊没烦恼!21 小时前
分布式事务 | 使用DTM 的Saga 模式
java·linux·运维·数据库·wpf
这个DBA有点耶21 小时前
备份成功≠数据可恢复:静默损坏会让物理备份把坏页一起带走
数据库·mysql·代码规范
数据库小学妹1 天前
MySQL MDL锁等待排查:DDL卡住与长事务定位
数据库·后端·mysql
Thneonl1 天前
ClickHouse UPDATE:一秒返回,三小时才生效
数据库·后端
SelectDB1 天前
特征导出卡在 JDBC 上,我换成了 Arrow Flight SQL 试试
大数据·数据库·数据分析
一只旭宝1 天前
【网络精讲6】muduo 的组件与接口:可视化了解muduo库
网络·数据库
泡海椒1 天前
深度解析JQuick-SQL SQL解析与AST生成机制|分布式SQL原理
数据库·分布式·sql
SelectDB1 天前
订单表改成实时更新后,我把主键模型的坑踩了一遍
大数据·数据库·数据分析
devilnumber1 天前
Redis 数据类型 + 项目落地场景(面试版,全面、实用,后端常用)
数据库·redis·面试
惠惠软件1 天前
PDF加盖骑缝章标注工具,PDF 文档上批量添加骑缝章或盖章的小工具
数据库·pdf·办公文件