第八章:模型类

 系列文章目录

 

第一章 :Django安装与配置虚拟环境

第二章:django各模块的作用以及参数说明

第三章:  Django的路由与视图

第四章:django请求

第五章:django会话

第六章:django中的cookie与session

第七章:视图类



前言

上一章说过,rander函数为什么叫做是渲染页面,这一章就对django中渲染模板进行揭秘,看看模板的渲染是有多么神奇

一、模板语法

模板如果只是一个静态的HTML文件的话,会不会太僵硬了呢?如果我一个商城页面有1024页的商品,是不是要写1024个页面供用户浏览呢?模板语法很好地解决了这个问题

1.简单数据的渲染

后端代码,把需要渲染的数据通过context传到render方法中

def demo02(req):
    data = {
        'temp': '这是一个变量',
        'list': ['列表一号成员', '列表二号成员'],
        'dict': {'username': '字典', 'password': 'zidian'},
    }
    return render(req, 'dome02.html', context=data)

前端代码,把需要渲染的数据使用双大括号包裹起来,里面填上变量名,字典的话通过.索引来取值,字典通过.键名来取值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这是一个模板</title>
</head>
<body>
普通变量的渲染:{{temp}}<br>
<hr>
列表数据的渲染:{{list.0}}<br>{{list.1}}<br>
<hr>
字典数据的渲染:{{dict.username}}<br>{{dict.password}}<br>
<hr>
</body>
</html>

2.通过函数进行数据的渲染渲染

for循环遍历

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这是一个模板</title>
</head>
<body>
普通变量的渲染:{{temp}}<br>
<hr>
列表数据的渲染:{{list.0}}<br>{{list.1}}<br>
<hr>
字典数据的渲染:{{dict.username}}<br>{{dict.password}}<br>
<hr>
通过函数进行列表的渲染:{%for i in list%}{{i}}<br>{%endfor%}
<hr>
通过函数进行字典的渲染:{%for k,v in dict.items%}{{k}}:{{v}}<br>{%endfor%}
<hr>
</body>
</html>

在使用{%for%}语句时候不要忘记在循环结束要加一个{%endfor%}代表循环的结束

ifelse判断

这里1代表真,0代表假,你可以换成自己的判断条件,支持and,or

判断:{%if 0%}真{%else%}假{%endif%}
<hr>

效果:

 3.使用过滤器

过滤器就相当于在数据加载之前对数据做了一个处理,比如我在k后面加一个|upper,就代表在渲染之前把数据替换为大写字母再进行渲染

 

 可以多次过滤 django内置了好像有60多种过滤器,有兴趣可以了解一下

常用过滤器:

first第一个元素

upper全部大写

lower全部小写

add:变量名

length长度

filesizeformat文件大小格式化 1024==1.0kb

date:“y-m-d”

4.模板的继承

在父模板创建一个块

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>继承的父模板</title>
</head>
<body>
{%block 模板名%}
这里是模板的内容
{%endblock 模板名%}
</body>
</html>

在子模板中使用块名去重写父元素块中的内容,并且要在第一行表示要继承那个文件

效果:


总结

使用模板可以让我们在给用户返回静态页面之前进行动态的渲染,渲染过后返回给用户,可以减少很多重复的前端页面的存放,减少了储存空间的占用,也可以在之后可以更好的去管理网站的内容。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪豪喜欢吃猪肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值