您的位置:首页 > 编程语言 > Go语言

django_template基础标签以及过滤器

2018-03-01 13:30 477 查看
{% comment %}
{% extends "base_generic.html" %}

{% block title %}{{ section.title }}{% endblock %}

{% block content %}
<h1>{{ section.title }}</h1>

{% for story in story_list %}
<h2>
<a href="{{ story.get_absolute_url }}">
{{ story.headline|upper }}
</a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}

1、变量 看起来象这样{{ variable }}
2、过滤 看起来象这样 {{ name|lower }} 使用管道符号(|)来应用过滤器后边跟一个过滤器的参数。该过滤器将文本转换成小写
注意、过滤器参数包含空格的话,必须用引号包起来。例如,使用逗号和空格去连接一个列表中的元素,你需要使用{{ list|join:", " }}。

一些常用的过滤参数:
1、default  为false或者空变量提供默认值 例如{{ value|default:"nothing" }}
2、length  返回值的长度 例如{{ value|length }} 如果value='abcd' 那么返回4
3、filesizeformat
3、标签
1、for循环标签 {% for pass %}{% endfor %}
2、if else elif标签 {% if pass %}{% elif pass %}{% else pass %}{% endif %}
4、block和extends
{% extends ’base.html‘ %}
{% block title %}
{% endblock %}
4、注释 {# #}单行注释
多行注释{% comment %}{% endcommen %}

5、模版继承 {% extends 'base.html' %}
使用技巧:
子模版”需要做的是先继承父模板bas
4000
e.html,然后复写、填充,或者说实现其中的blocks。
如果需要获取父模板中的block的内容,可以使用{{ block.super }}变量

6、自动转义html
户提交的数据都被不应该被盲目的信任,一个怀有恶意的用户可能会使用这样的漏洞来做一些坏事。为避免这个问题
利用Django的自动HTML转义功能。默认情况下,Django中的每个模板会自动转义每个变量。也就是说,下面五个字符将被转义:
<会转换为<
>会转换为>
'(单引号)转换为'
"(双引号)会转换为"
&会转换为&
强烈建议:将此功能做为默认打开的设置,不要关闭它!

1、单个例外需要不转义 {{ data|safe }}  关键字是safe
2、对于模块例外不转义 {% autoescape off %}{% endautoescape %}  是一个标签,标签内部的都不会被转义

7、方法调用
大多数对象上的方法调用同样可用于模板中。这意味着模板能够访问到的不仅仅是对象的属性(比如字段名称)和视图中传入的变量,还可以执行对象的方法。比如多对一字段的反响查询。
还记得怎么用吗?[一的实例].[多的类名]_set.all()...与之类似[一的实例].[多的类名]_set.all.count方法获取获取到的数量

8、static标签用于链接保存在STATIC_ROOT中的静态文件。例如:{% load static %}<img src="{% static "images/hi.jpg" %}" alt="Hi!" />

10086、还有一个更重要的:url  {% url '[一个url的name]' [对应的url需要的参数] %}
如果指定不同应用app的url名称  {% url 'blog:index' [对应参数] %}

9、其他标签:
now 例如It is {% now "jS F Y H:i" %} 显示当前的日期或时间。可以指定显示的格式。
{% endcomment %}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: