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路由隔离。
相关推荐
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2026-05-21
前端·人工智能·经验分享·chatgpt·html
廿一夏3 小时前
MySql存储引擎与索引
数据库·sql·mysql
lzhdim5 小时前
SQL 入门 15:SQL 事务:从 ACID 到四种常见的并发问题
数据库·sql
瀚高PG实验室5 小时前
瀚高企业版V9.1.1在pg_restore还原备份文件时提示extract函数语法问题
数据库·瀚高数据库
TDengine (老段)6 小时前
TDengine Tag 设计哲学与 Schema 变更机制
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
YOU OU7 小时前
Spring IoC&DI
java·数据库·spring
Muscleheng8 小时前
Navicat连接postgresql时出现‘datlastsysoid does not exist‘报错
数据库·postgresql
罗超驿8 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
jran-8 小时前
Redis 命令
数据库·redis·缓存
小江的记录本9 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven