博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模板标签
阅读量:4986 次
发布时间:2019-06-12

本文共 3082 字,大约阅读时间需要 10 分钟。

1.常用的模板标签

    -作用是什么?提供各种逻辑
    -模板标签格式  大括号 百分号 语句 百分号 大括号,还要有结尾也是大括号 百分号 end语句 百分号 大括号
                              比如 {% for item in items %}   
                               item.元素1
                               item.元素2
                               item.元素3
                                 .......
                          {% endfor %}
        其中items可以是视图函数传过来的参数里的模板变量,模板标签里可以通过循环取得它里边的元素,依次把这些元素进行渲染,去执行模板标签和模板结尾标签之间定义的操作,循环直到取完items里边的元素为止

{% for stu in students %}                            {
{forloop.counter}}
{
{stu.name}} {
{stu.age}} {
{stu.sex}} {% endfor %}

    -常用标签  for、 if、

        (1)其中if语句的关系运算符==,<,>,<=,>= 运算符前后必须有空格,可以
            {% if a== 'aaa' %}  此情况下执行某某语句
            {% elif a>'aaa' %} 此情况下执行某某语句
            {% else %}
            {% endif %}
        (2)url标签是单标签不用有endurl  {% url 空格'app:视图函数'空格 需要传的参数1 空格 参数2 %},url模板标签也可以动态解析url,
            注意:'app:视图函数'前后不要加'/',需要提前在urls.py中为app命名,以及给相应视图函数的path起名name='某某某名字'
        (3)with {% with s2 = students.2%}
                        {% endwith %}
          (4)循环的模板标签里想取得序号,可以使用{
{forloop.counter}},forloop可以获取当前for循环的迭代次数,.counter是下标以1开始,.counter0是下标从0开始
    想让循环迭代次数从大到小排是.revcounter,以1结束,.revcounter0是以0结束
        
        总结:本质还是字符串格式化,语法 :
        {% tag %} {% endtag %}
        {% tag 参数 参数 %}
    注意在模板标签的{}里用到的模板变量不用再加双层花括号了,变量名就能用,在模板标签和模板结尾标签之间的语句里模板变量要用双层花括号
    
2.模板的继承与引用  (include 和extends也是模板标签)
    -引用 include标签   {% include 路径 %}可以把别的模板渲染完后的内容放到其他模板里你想放的位置,include标签是单独的标签,没有结尾标签,可以用于插入广告模板页面等,他的参数就是其他想引用的模板页面的路径
    -继承 extends标签 解决前端代码冗余
        (1)步骤:1)新建base模板,把所有模板最基本的共同内容写到base里,把其他模板需要更改的部分都去掉
                  2)在需要继承base模板的我们定义的模板,最上面写extends标签{% extends 'app名/base.html' %},extends标签必须在模板文本最上面,注意标签里百分号后,extends后,路径后 都要有空格
                    继承的父模板外用引号括起来
                  3) 某个模板文本最上写上extends标签后,就代表它继承base父模板,它自己本身的内容就都不起作用了,只会显示继承自父模板的内容,去返回父模板所渲染的东西

{% block title %}base模板{% endblock %}    {% block link %}        这里引入你自己想用的css文件吧...    {% endblock %}{% block c1 %}        

abcdefgh....

{% endblock %}

上面这些是父模板中的代码

{% extends 'teacher/base.html' %}{% block link %}    {% load static %}    
{% endblock %}{% block title %}loginteacher{% endblock %}{% block c1 %}
{% endblock %}

这是自定义的模板中的代码

         (2) block标签 :base模板好比字符串中占位符,预留出来给继承它的模板显示自己的内容
              注意,block标签是写父模板文本base.html中的时候,是留坑留给继承它的模板页面的,
                  block标签写在自定义的有个性内容的模板文本中的时候,可以填坑去定义本模板自定义的个性内容
                  本质还是字符串格式化,占位坑想挖几个挖几个,想挖哪里挖哪里
              语法 1)父模板中,想留空的位置{% block 随便起个名字 %}  。。。。{% endblok %}    block标签也是闭合标签,要有结束标签,起的名字不要加引号扩起来
                    父模板中可以插入多个不同命名的block标签和它自己的结尾block标签
                    block标签还能写到html页面标签当中,比如<title>{% block title %}base模板{% endblock %}</title>
                     2)继承父模板的自定义模板中,想自定义东西的位置写成对的block标签和结尾block标签名字要和副模版中对应的block标签名字相同,比如头部block标签里定义css样式,body里定义自定义显示的内容
                        {% block 和父模板中对应的block标签一样的名字 %}
                        任何自定义内容
                        {% endblock %}
                        如果副模版的block标签写在html标签中,自定义模板文本对应名字的block标签直接写html标签里的内容就可以了,外面的html标签都继承过来了
                    多个自定义模板可以继承同一个父模板,可以像python里的类一样多次继承,我们可以继承一个父模板,它继承了别的父模板
                   3)技巧:父模板和自定义模板尽可能多挖坑,
                    常见的挖的坑都有:(1)定义一个页面底部的block标签{% block domready %}{% endblock %}用来留给自定义模板放js代码的地方
                                  (2)页面上部定义的放css的坑
                                   (3)页面上部定义的放script代码的坑
            

转载于:https://www.cnblogs.com/bianyimaomaochong/p/10464799.html

你可能感兴趣的文章
获取微信用户列表Openid
查看>>
架构必备词汇
查看>>
SublimeText快捷键操作
查看>>
Python开发 基礎知識 (未完代補)
查看>>
监听器的使用,以及实现, 测试
查看>>
java基础二 分支循环
查看>>
python--002--数据类型(list、tuple)
查看>>
把近期的小错误整理一下
查看>>
动态规划 —— 背包问题一 专项研究学习
查看>>
51nod 1571 最近等对 | 线段树 离线
查看>>
关于parseInt的看法
查看>>
从用户端到后台系统,严选分销教会我这些事
查看>>
数据分析融入至BI工具的新思路
查看>>
c#必会知识点
查看>>
网页使用MD5加密
查看>>
JS 基础
查看>>
HBase shell 中的十六进制数值表示
查看>>
Python3 中 configparser 模块解析配置的用法详解
查看>>
新手android环境搭建、debug调试及各种插件安装__图文全解
查看>>
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 win2008R2 X64 IIS7.5
查看>>