模板标签及模板的继承与引用

模板标签及模板的继承与引用

一、模板标签

定义:标签在渲染的过程中提供任意的逻辑

语法:由 {%    %} 来定义的

例:1、循环列表数据

  2、如果要判断性别是女的,背影色为黄色,否则为红色

  3、如果要加序号

  4、如果电话号码为空时,显示未填

{% for student in students %}

<tr  {% if student.sex == "女" %}style = "background-color : yellow "    {% else %}style = "background-color : red">

  <td>{{ forloop.counter }}</td>

  <td>{{ student.name }}</td>

   <td>{{ student.age }}</td>

   <td>{{ student.sex }}</td>

   <td>{{ student.phone | default: "未填" }}</td>

</tr>

{% endfor %}

#  url 标签的应用

例:需求是点击列表明细里的 id 号后可以跳转到下一个对应的 id 的详情页

1)新建一个函数,内容如下:

def  student_detail_view(request, pk):

  student_detail = {  1: {'id' : 1 ,'name' : 'shen' , 'age' : 40 , 'address' : '上海'},

          3: {'id' : 3 ,'name' : 'shen' , 'age' : 40 , 'address' : '上海'},

         15: {'id' : 15 ,'name' : 'shen' , 'age' : 40 , 'address' : '上海'}

          }

  return render(request, 'teacher/student_detail_view.html, context = {'student_detail' : student_detail}

2) 在 teacher文件夹下url.py文件中设置路径

  path('student_detail / <int : pk>/' , views.student_detail_view, name='student_detail')

3)在student_detail_view.html文件中加一个<a> 标签

<td><a href=" { % url  'teacher : student_detail'  student.id %}>{{ student.id }}</a></td>

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、模板继承

语法格式:{% block 自定义名称 %}

第1步:新建一个base.html文件,把student_list_page.html文件内容复制到base.html文件中

第2步:在<title>   </title>标签中写 {% block title %} Bottstrap 101 Template {% endblock %} 

第3步:在<boby>  </boby>标签中写{% block  content %}        {% endblock %}

第4步:在把<boby> </boby>标签中的内容删除,只留下第3步写的

第5步:在打开student_list_page.html文件,把内容全部删除写入

    { % extends  'teacher/base.html'  %}

    { % block title %} 学生列表 {%  endblock  %}

    {%  block content  %}  写内容的代码  {%  endblock  %}

优点:如果要加css效果,就可直接写在base.html文件里,那样student_list_page.html文件就会继承base.html文件里的css效果

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

三、模板引用

语法格式:{ % include  '路径/html文件'  %}

第一步:在app  teacher文件夹下创建一个guanggao.html文件

第二步:在base.html文件中写{%  block  gog %}

              { %  include  'teacher/guanggao.html'  % }

              {% endblock  % }

优点:每个页面都会引用guanggao.html文件内容了

 

posted on 2019-03-25 22:42  nickshen  阅读(190)  评论(0编辑  收藏  举报

导航