美文网首页
python的django模板总结

python的django模板总结

作者: oliverhuang | 来源:发表于2015-10-11 21:12 被阅读314次

参考自1.6版本

1.变量

格式:{{ variable }}

.(点),下划线(_),和字母组成变量

如果是类似variable.variable
django会进行类似下面的寻找

  • 字典
  • 类属性
  • 类方法
  • 列表的索引

字典会优先于方法被判断

如果变量是不存在,默认为空白字符代替

bar在模板中会解析成字符串常量

2.过滤器

格式:{{ name|lower }}

过滤器是可以链式连接的,如{{ text|escape|linebreaks }}
过滤器也是可以带参数的,如{{ bio|truncatewords:30 }}
过滤器参数如果有空格必须引号加起来,如{{ list|join:", " }}

django提供了内置的过滤器参考这里
也可以自定义变量

3.标签

格式:{% tag %}

一些需要开始的tag和结束的tag,例如:{% tag %} ... tag contents ... {% endtag %}
django提供了内置的标签参考

列一些常用的tag

for循环

<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>

条件判断

{% if athlete_list %}
Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
Athletes should be out of the locker room soon!
{% else %}
No athletes.
{% endif %}

在if语句中可以加入过滤器和操作符
也可以自定义tag

4.注释

格式:{# comment #}
这个只能单行注释,如果需要多行注释,需要使用comment tag

5.模板继承

父模板:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="style.css" />
    <title>{% block title %}My amazing site{% endblock %}</title>
</head>

<body>
    <div id="sidebar">
        {% block sidebar %}
        <ul>
            <li><a href="/">Home</a></li>
            <li><a href="/blog/">Blog</a></li>
        </ul>
        {% endblock %}
    </div>

    <div id="content">
        {% block content %}{% endblock %}
    </div>
</body>
</html>

子模版:

{% extends "base.html" %}

{% block title %}My amazing blog{% endblock %}

{% block content %}
{% for entry in blog_entries %}
    <h2>{{ entry.title }}</h2>
    <p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}

如果在模板中使用了{% extends %}
如果需要使用父模板中的block中的内容可以使用{{ block.super }}
模板的tag不要重名

django默认加入了 auto-escaping 防止XSS
取消的话,针对变量可以加入safe,如{{variable|safe}}

django
区块的autoescape

{% autoescape off %}
    Hello {{ name }}
{% endautoescape %}

django的方法在模板中是没有参数的
模板默认的字符串的值是不做autoscape的,这个控制有模板作者决定
如:
{{ data|default:"3 < 2" }}

{{ data|default:"3 < 2" }} {# Bad! Don't do this. #}

导入自定义的tag和filter
格式:{% load comments %}

笔记总结自django templates

相关文章

网友评论

      本文标题:python的django模板总结

      本文链接:https://www.haomeiwen.com/subject/mgfocttx.html