4-Django的设计模式及模板层

1、传统个MVC模式

在这里插入图片描述

2、Django的MTV模式

在这里插入图片描述

3、Django模板层
(1) 什么是模板
  • 模板是可以根据字典数据动态变化的HTML网页
  • 模板可以根据视图中传递的字段数据动态生成相应的HTML网页
(2)模板配置

1) 创建模板文件夹 <项目名>/templates
在这里插入图片描述
2)在settings.py中 TEMPLATES配置项,修改DIRS 为创建的文件夹
在这里插入图片描述
TEMPLATES配置项参数介绍:
BACKEND: 指定模板的引擎
DIRS : 模板的搜索目录(可以是1个或多个)
APP_DIRS: 是否要在应用中的templates文件夹中搜索模板文件
OPTIONS: 有关模板的选项

(3)模板的加载方式

方案1 – 通过 loader 获取模板,通过HttpResponse进行响应
在视图函数中:

from django.template import loader
# 1.通过loader加载模板
t = loader.get_template('test_html.html')
# 2. 将t转换成 HTML 字符串
html = t.render(字典数据)
# 3. 用响应对象将转换的字符串内容返回给浏览器
return HttpResponse(html)

方案2 – 使用 render() 直接加载并响应模板
在视图函数中:

from django.shortcuts import render
return render(request, '模板文件名', 字典数据)
(4) 视图层与模板层之间的交互

1、视图函数中可以将Python变量封装到字典中传递到模板
样例:

def xxx_view(request):
    dic = {
        "变量1":"值1",
        "变量2":"值2"
    }
    return render(request, '.html', dic)

2、模板中,可以用 {{变量名}} 的语法 调用视图传进来的变量

(5)案例

templates/test_html.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h3>我是模板层~~~~~~</h3>
</body>
</html>

urls.py

path('test_html', views.test_html),

views.py

def test_html(request):
    # 方案1
    from django.template import loader
    t = loader.get_template('test_html.html')
    html = t.render()
    return HttpResponse(html)

    # # 方案2
    # from django.shortcuts import render
    # dic = {"username": 'guoxiao', "age": 18}
    # return render(request, 'test_html.html', dic)

浏览器输入:http://127.0.0.1:8000/test_html 结果展示如下:
在这里插入图片描述
上述代码可注释调方案1,使用方案2 再次运行操作,结果一致。

下一篇:5-Django模板层变量和标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值