Django模版

模版template

在Django框架中,模版可以帮助开发者快速生成呈现给用户页面的工具

设计方式实现了我们MVT中VT的解耦(M:Model, V:View,T:Template),VT有着N:M的关系,一个V可以调用任意T,一个T可以供任意V使用
模板处理分为两个过程
        加载HTML
        渲染数据 render()
模板主要有两个部分
        HTML静态代码
        模板语言,动态插入的代码段(挖坑,填坑) 
模板中的动态代码段除了做基本的静态填充,还可以实现一些基本的运算,转换和逻辑


静态页面:页面数据是本地固定的
动态页面:页面数据来源于后台服务器


模板中的变量:视图传递给模板的数据,遵守标识符规则

        语法:{{ var }}
        如果变量不存在,则插入空字符串

方法不能有参数

        {{ str }}

        {{ str.supper }}

        {{ str.isdigit }}

        {{ dict.key }}

列表,使用索引,不允许负索引

        items=['a','b','c']

        {{ items.2 }}

模板中的标签

        {%  tag %}

作用

        1.加载外部传入的变量

        2.在输出中创建文本

        3.控制循环或逻辑

if 语句

        格式:

                if 单分支:

                        {% if  表达式 %}

                                语句

                        {% endif %}

                

               if 双分支:

                        {% if  表达式 %}

                                语句

                        {%  else  %}

                                语句

                        {%  endif  %}

               

         if 多分支:

                        {% if  表达式 %}

                                语句

                        {%  elif 表达式 %}

                                语句

                        {%  else  %}

                                语句

                        {%  endif  %}

        判断true 或false

                {%  if today_is_weekend %}

                        <p>happly day</p>

                {%  endif %}

        

for 语句

        {%  for 变量 in 列表 %}

                语句1

        {%  empty %}

                语句2

        {%  endfor %}

        当列表为空或不存在的时候,执行empty之后的语句
  

    {{ forloop.counter }}表示当前是第几次循环,从1数数
    {% for item in todo list %}
      <p>{{ forloop.counter }}:{{ item }}</p>
    {%endfor %}
      
     {{ forloop.counter0}}表示当前是第几次循环,从0数数                          {{ forloop.revcoúnter}}表示当前是第几次循环,倒着数数,到1停{{ forloop.revcounter0}}表示当前第几次循环,倒着数,到8停{{ forloop.first }}是否是第一个 布尔值
     
      {% for object in objects %}
      {% if forloop.first %}
        <li class="first">
      {% else %}
         <li>
        {% endif %}
      {{ object }}
        </li>
      {% endfor %}
      
 注释:
{#单行注释被注释掉的内容#}
多行注释
{% comment %}
内容
{% endcomment %}

过滤器:
{{ var|过滤器 }}
作用:在变量显示前修改
add {{ valueladd:2 }}没有减法过滤器,但是加法里可以加负数
{{ valueladd:-2 }}
lower
{{ name|lower }}
upper
{{ my_list|firstlupper }}
截断:
{{ bio|truncatechars:30 }}
过滤器可以传递参数,参数需要使用引号引起来
比如join: {{ students join:'='}}
默认值:default,格式{{var|default:value}}
如果变量没有被提供或者为False,空,会使用默认值
根据指定格式转换日期为字符串,处理时间的就是针对date进行的转换

模板继承
block:
{% block xxx%}
code
{% endblock %}
extends 继承,写在开头位置
{% extends'父模板路径'%}
include:加载模板进行渲染
{% include'模板文件’%
{{ block.super }}:获取父模板中block中的内容

if 语句的写法及呈现结果 age=5的时候


将age=70时 呈现以下结果

for 循环语句

下标

for 循环可以嵌套if语句

循环嵌套

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值