django中模板层详解

一.模板的功能
产生html,控制页面展示的功能,模板文件包括两部分。 (1)静态内容:html,css,js

(2)动态内容:模板语言

二.模板文件的使用
通常是在视图函数中使用模板产生html内容返回给客户端。

a)加载模板文件 loader.get_template
获取模板文件的内容,产生一个模板对象。

b)定义模板上下文 RequeseContext
给模板文件传递数据。

c)模板渲染产生html页面内容 render
用传递的数据替换相应的变量,产生一个替换后的标准的html内容。

最后返回内容给浏览器。

不过,这些功能django已经给我们封装成 render方法。
render(request,要打开的模板路径,字典传递的数据)

三.模板语言
(1)模板变量

模板变量名是由数字,字母,下划线和点组成的,不能以下划线开头。

模板变量的使用:

		{{模板变量名}}

模板变量的解析顺序:

例如: {{book.title}}

1)
把book当成一个字典,title当成键。
2)
把book当成对象,title当做属性。
3)
把book当成对象,title当成方法。

(2)模板标签
1)模板中的for循环

{% for 循环变量  in  循环对象  %}

		循环执行的语句
{%empty%}
		循环对象本身是空的时候,执行的代码
{% endfor%} {# 结束循环 #}

2)模板中的判断语句

{%  if  条件  %}
		满足条件执行的语句
{% elif  条件 %}
		满足条件执行的语句
{%  else  %}
		以上条件都不满足时执行的语句
{%  endif  %}

(3)模板过滤器
过滤器用于对模板变量进行操作
1)django内置过滤器
2)自定义过滤器

(4)模板注释
单行注释:
{# 注释#}
多行注释:{% comment %}
注释内容
{% endcomment %}

(5)模板继承

在父模板中可以定义块,子类可以重写该部分内容。

	例如:父类
	内容1
	{% block 块名%}
			可重写的内容
	{% endblock 块名 %}
	内容2
子类:
	{% extends 要继承父类模板的路径%}  {# 这样就继承了父类模板所有的内容 #}
	
	{% block 块名%}
			{{ block.super }}  {#   #}
			 在这里可以重写父类block块里的内容
	{% endblock 块名 %}

模板继承也是为了重用html页面内容。

(6)html转义
要关闭模板上下文字符串的转义:
可以使用

	 {{ 模板变量|safe}}

也可以使用:

	{% autoescape off %}
			模板语言代码
	{% endautoescape %}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值