{% 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' %} 使用技巧: 子模版”需要做的是先继承父模板base.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 %}
django_template基础标签以及过滤器
最新推荐文章于 2023-05-18 10:14:43 发布