Django模板系统(templates)

模板语言

常用语法

  两种特殊符号{ {} }、{%%},变量相关用{ {} },逻辑相关用{%%}

  变量

  {变量名}

  变量名由字母数字和下划线组成

  点(.)在模板语言中有特殊含义,用来获取对象的相应属性值

  模板中支持的写法:

    {#取1中的第一个参数#}  {{1.0}}

    {#取字典中key的值#}   {{d.name}}

    {#取对象的name属性#}  {{person_list.0.name}}

    {#操作只能调用不带参数的方法#}  {{person_list.0.dream}}

  内置Filters

    法:{{value|filter_name:参数}}

    default

      {{value:default:‘nothing’}}  如果value值没传的话就显示nothing

    length

      {{value|length}}    返回value的长度,如value=[a,b,c,d]的话,就显示4。(‘|’左右两边没有空格)

    filesizeformat

      将值格式化“一个人类可读”的文件尺寸(例如,13kb,4.1M,202bytes等)

      {{123456789|filesizeformat}}  输出117.7MB

    slice  切片

      {{value|slice:“2:-1”}}

    date  格式化

      {{value|date:“Y-m-d H:i:s”}}

    safe

    Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因是为了安全。但有时候我们不希望有一些HTML标签被转义,比如做一个内容管理系统,后台添加的文章中是经过装饰的

    这些装饰可能是通过一个类似于FCKedirtor编辑加注了HTML装饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果

    是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。

    truncatechars

    如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号系列(“...”)结尾

    参数:截断的字符串

    {{value|truncatechars:9}}

  自定义Filter

    自定义过滤器只是带有一个或两个参数的Python函数:

    变量(输入)的值——不一定是一个字符串

    参数的值-这可以有一个默认值,或者完全省略

  for循环

    <ul>

    { %for user in user-list% }

      <li>{{user.name}}</li>

    { %endfor% }

    </ul>

    for循环可用的一些参数

      

  if,elif,else

    if语句支持and、or、==、>、<、!=、<=、>=、in、not in、is、is not判断

  with

  定义一个中间变量

  csrf_token

  这个标签用于跨站请求伪造保护

  在页面的form表单里面写上{%csrf_token%}

  注释

    母版  我们通常会在母版中定义页面专用的JS块、CSS块,方便子页面替换

    继承母版  在子页面中在页面最上方使用下面的语法来继承母版

      {%extends ‘layouts.html%’}

  块(block)

    通过在母版中使用{%block XXX%}来定义“块”

    在子页面中通过定义母版中的block名来对应替换母版中相应的内容

  组件

    可以将常用的页面内容如导航条,页面信息等组件保存在单独的文件中,然后在需要使用的地方按如下语法导入即可

    {%include‘navbar.html’%}

  静态文件相关

    {%load static%}

    <img src="{%static "mytest.js"%}"alt="Hi!"/>

    引用JS文件时使用:

    {%load static%}

    <script src="{%static "mytest.js"%}"></script>

    某个文件多处被用到可以存为一个变量

    {%load static%}

    {%static “images/hi.jpg” as myphoto%}

    <img src="{{myphoto}}"></img>

    使用get_static_prefix

    {%load static%}

    <img src="{%get_static_prefix%}images/hi.jpg"alt="hi!"/>

    inclution_tag多用于返回html代码片段

猜你喜欢

转载自www.cnblogs.com/jacky912/p/10430286.html