一、什么事模板语言

html+逻辑控制语句

二、模板语言的作用

帮助前端处理后端发来的数据,方便前端展示(杂糅渲染)

三、模板语言语法

1、{{变量}}

变量使用双大括号{{}}

2、万能的句点号.

1)后端

def index(req):

    s="hello"

    s1=[1,22,333]

    s2={"username":"hope","sex":"jjj"}

    return render(req,'index.html',{"obj":s2})

2)前端

##{{obj.2}}

 {{obj.username}}  结果 : hope

obj也可以拿属性

1)前端

import datetime

s4=datetime.datetime.now()

return render(req,"index.html",{"obj":s4})

2)后端

{{obj}}

{{obj.year}}

{{obj.month}}

3、{% if %}

(1)语法格式

{% if %}

....

{% endif %}

(2)举例

{% if 1 %} //或者{% if True %} ,这两种都表示前端拿到后端的值,则为1或True,则。。。

  <p>hello world</h1>

  {% elif obj %}   //表示,obj接收到后端的值则。。。

    <p>hello 2</p>

{% endif %}

4、{% for %}

(1)语法格式

{% for i in obj %}

......

{% endfor %}

(2)举例

{% for i in obj %}

  <p>{{i}}</p>   //循环打印出obj的值

  <p>{{forloop.counter}}:{{i}}</p>  // 索引:值,forloop.counter纪实循环,从1开始

  <p>{{forloop.counter0}}:{{i}}</p> //索引从0开始

{% endfor %}

5、filter过滤器

(1)变大写

{{ obj|upper }}  全大写

{{ obj|lower}}    全小写//默认时全小写

{{ obj|first}}       取第一个字母

{{ obj|capfirst}}  首字母大写

{{obj|add:5}}       加法

{{obj|default:"空"}}  返回值为空,则输出自定义的值

注意:

前端

s8=<a href='#'>跳转</a>

后端

方法一autoescape

{% autoescape off %}    将字符串变为html可识别的标签,否则打印出来的只是字符串

    {{obj}}

{% endautoescape %}

方法二safe

{{obj|safe}}

四、模板语言自定义标签

1、url

2、views

3、templates

 

 posted on 2018-12-27 18:00  xibuhaohao  阅读(298)  评论(0编辑  收藏  举报