django 的模板语言template ,自定义过滤器,自定义标签,模板继承

原文地址:https://www.cnblogs.com/gyh04541/p/7905826.html

后端views文件传来的字符串和对象,到前端页面后需要进行渲染,

{{ 变量 }}
{{ 变量| filter:参数 }}
filter可以有很多函数

{#对后端传来的数据进行渲染,add 就是过滤器,#}

{{ i|add:10 }}

{#后端给的数据,前端进行修饰,显示时间#}

{{ t|date:"Y-m-d "}}

{#defult ,如果s是空,default就可以指定一个5值,,如果有数据,就显示数据#}

{{ s|default:"此处为空"}}

{#如果后端传的数据太多,只想显示一部分,用truncatewords:3 ,截取3个单词显示#}

{{ info|truncatewords:3 }}

{#{% url %} 别名#} {#{% with %} {% endwith %}用简单的变量名,代替复杂额变量名#} {# 告诉浏览器 这个变量时安全的,可以渲染,没有必要显示纯文本 #}

{{ a|safe }}

===== template提供的内置过滤器,不够用,不灵活,就可以自己定义一个过滤器 步骤1:在自己的app里建一个templatetags包,在包里创建一个后面要在HTML文件引用的py文件, 步骤2:在py文件中,先导入from django import template , 实例化对象register = template.Library() #创建一个template能认识的函数 对创建的每一个过滤器,都要用加上装饰器, 步骤3: 在HTML文件中引用{% load mytag %},就可以直接用定义好的过滤器
{#自定义过滤器#}
{#在settings文件中自定义filter过滤器,要在自己的APP应用#}
{#中创建一个templategs包,包含有__init__.py 文件#}

过滤器函数只能传一个参数,
自定义标签可以写多个参数

django 的模板语言template ,自定义过滤器,自定义标签,模板继承_第1张图片

-----------

{#先导入已经用python写好的过滤器函数,通常写在最上面,#}
{#要重新启动项目,加载新创的文件#}
过滤器
{{ i|multi:5 }}


{#自定义标签simple-tag,可以传 多个参数#}
自定义标签
{% multi2 5 3 2 %}

用过滤器写一个判断
{% if i|multi:10 > 1 %}
        

大于

{% else %}

小于

{% endif %}
-------------------------

模板继承

写一个都要继承的模板test.html




    
    Title

    






{% block con %} ---------------------            之间的部分就其他页面可以直接写自己的,除此之外的地方都被继承 {% endblock %} ------------------------

 

 

extends.html 是继承了test.html 页面,在block con 之间写自己的内容即可

{% extends  "test.html"%}




{% block con %}
    

3333

3333

3333

3333

3333

{% endblock %}

 

你可能感兴趣的:(python)