django

Django-05 MTV和模板层

2021-07-10  本文已影响0人  JuliusL

MVC和MTV

MVC代表Model-View-Controller(模型-视图-控制器)模式。

作用:降低模块间的耦合
image.png

MTV代表Model-Template-View(模型-模板-视图)模式。

什么是模板

1,模板是可以根据字典数据动态变化的html网页
2,模板可以根据视图中传递的字典数据动态生成对应的html网页。

模板配置

创建模板文件夹<项目名>/templates
在settings.py中templates配置项
1,BACKEND:指定模板的引擎
2,DIRS:模板的搜索目录(可以是一个或多个)
3,APP_DIRS:是否要在应用中的templates文件夹中搜索模板文件。
4,OPTIONS:有关模板的选项

模板的加载方式

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

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

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

from django.shortcuts import render
return render(request,'模板文件名',字典数据)

视图层与模板层之间的交互

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

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

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

{{变量1}}{{变量2}}
上一篇下一篇

猜你喜欢

热点阅读