(模版系统全局变量-if判断-for循环-过滤器-模版继承/引用-引用静态文件)
Posted 运维.大白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(模版系统全局变量-if判断-for循环-过滤器-模版继承/引用-引用静态文件)相关的知识,希望对你有一定的参考价值。
模版系统
Django模版系统:用于自动渲染一个文本文件,一般用于html页面。模版引擎渲染的最终HTML内容返回给客户端浏览器。模版文件有两部分组成:
静态部分,例如html,css,js
动态部分,django模版语言,类似于jinja语法
事例一
1.定义视图
path('hello/',views.hello, name='myapp_hello')
2.定义路由
编写一个hello函数
def hello(request):
user = 'name': '张帆','property': 'sex': '男','age':30
return render(request,'template.html','user':user)
3.编写html模版
template.html模版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模版测试</title>
</head>
<body>
user <br>
姓名: user.name <br>
性别: user.property.sex <br>
年来: user.property.age <br>
</body>
</html>
最终实现html文件的解析
变量定义:在函数视图render中的context传入,类似于字典对象。
变量在模版中引用,格式: key
变量 :设置全局变量
1.0 在项目目录下创建一个contexts.py文件
2.0 修改settings.py
3.0 在html模版文件中引用
后续直接引用即可 username
条件判断
if 条件判断: ·判定给定的条件是否满足,根据判定的结果决定执行的语句。
简单测试条件判断
当% if user.property.age == 30 % 访问输出相等
测试循环
1.编写hello路由
def hello(request):
#return HttpResponse("这是第一个模块")
login_user = "zhangfan"
user = 'zhangsan': 'name': '张三','sex': '男','age':30,'lable':['it','运维工程师'],
'lisi': 'name': '李四', 'sex': '男', 'age': 28, 'lable': ['it', '前端前端'],
'wanger': 'name': '王二', 'sex': '男', 'age': 25, 'lable': ['it', '后端工程师'],
2.编写html模版
3.测试,列出所有的key
4.通过for循环将字典所有信息打印到表格中
编写html模版
<table border="1">
<thead>
<tr>
<th>用户名</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>标签</th>
</tr>
</thead>
<tbody>
% for k,v in user.items %
<tr>
<td> k </td>
<td> v.name </td>
<td> v.sex </td>
<td> v.age </td>
<td> v.lable </td>
</tr>
% endfor %
</tbody>
</table>
4.1在吧标签用for循环完善
最终效果如图所示
常用的过滤器
自定义过滤器
模版继承
1.0编写基础模版
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
<style>
.nav
background-color: chartreuse;
color: black;
.content
background-color: cornflowerblue;
color: black;
.footer
background-color: red;
color: black;
</style>
</head>
<body>
<div class="nav">
<h1>头部区域</h1>
</div>
<div class="content">
% block context % % endblock %
</div>
<div class="footer">
<h1>底部区域</h1>
</div>
2.0 引用模版
3.0测试其他模版引用
内容区域不变更新开头和结尾
最终实现多模版的复用
模版导入
引用静态文件
1 修改项目配置文件
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
以上是关于(模版系统全局变量-if判断-for循环-过滤器-模版继承/引用-引用静态文件)的主要内容,如果未能解决你的问题,请参考以下文章