导航:VS2019开发Django系列

紧接上篇,继续介绍Django中的模板,考虑可能篇幅过长,所以分为两部分来讲,今天的主要内容:

1)内置模板和过滤器

  • 母版,继承关系。头部导航和页脚,是需要与其他页面共用的,那么,需要把这一部分提取出来,放在一个单独的layout.cshtml页面中,其他需要显示的页面,继承这个页面即可。

    注意着色部分,{% load staticfiles %} 加载静态文件,静态文件按照项目默认配置,在App文件夹里边的static文件夹下边

    注意着色部分,{% block content %}{% endblock %},block定义可以被子模板覆盖的块,通俗一点就是用来给子模板占位用的

    从引用的静态文件我们可以看出来,使用了BootStrap前端框架,这个是VS在新建Django项目的时候默认添加的,那么就直接用这个前端框架来布局了layout.cshtml母版页

    另外要提一下的是还引入了一个bootstrap-table.min.js,官方介绍:与一些最广泛使用的CSS框架集成的扩展表。(支持Bootstrap,语义UI,Bulma,Material Design,Foundation)

    <!DOCTYPE html>
    
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta charset="utf-8" />
    <title></title>
    {% load staticfiles %}
    <link rel="stylesheet" type="text/css" href="{% static 'app/content/bootstrap.min.css' %}" />
    <link rel="stylesheet" type="text/css" href="{% static 'app/content/bootstrap-table.min.css' %}" />
    <script src="{% static 'hello/scripts/jquery-1.10.2.min.js' %}"></script>
    <script src="{% static 'hello/scripts/bootstrap.min.js' %}"></script>
    <script src="{% static 'hello/scripts/bootstrap-table.min.js' %}"></script>
    <script src="{% static 'hello/scripts/bootstrap-table-zh-CN.min.js' %}"></script>
    </head>
    <body>
    <div id="myModal" class="modal fade" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
    <div class="modal-content">
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    <h4 class="modal-title"></h4>
    </div>
    <div class="modal-body">
    <p></p>
    </div>
    <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
    </div>
    </div>
    </div>
    </div>
    <div class="navbar navbar-inverse navbar-fixed-top">
    <div class="container">
    <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    <span class="icon-bar"></span>
    </button>
    <a href="/" class="navbar-brand">DjangoLazyOrders</a>
    </div>
    <div class="navbar-collapse collapse"></div>
    </div>
    </div>
    <div class="container body-content">
    {% block content %}{% endblock %}
    <hr />
    <footer>
    <p>&copy; {{ year }} - My DjangoLazyOrders Application</p>
    </footer>
    </div> {% block scripts %}{% endblock %}
    </body>
    </html>

    母版页有了,那么,在子模板中怎么继承这个母版页呢?新建一个模板LazyOrders.cshtml,复制下面的代码贴进去,然后当前子模板的内容写在 block之间即可。注意extends标记声明了需要继承哪个母版页

    {% extends "hello/layout.cshtml" %}
    
    {% block content %}
    
    ......
    
    {% endblock %}
  • 其他常用标记。框架提供很多的标记,都是为了在渲染html文本的时候,更方便的表达而设计的标记,这里不一一做介绍,可以直接参考官方文档

    for:循环数组中的每个项,使该项在上下文变量中可用。

    if:{% if %}标签计算一个变量,如果该变量为“true”(即存在,不为空,也不是一个假布尔值),则输出块的内容。categorys为视图中调用render()函数传递的参数,上一篇中提到过。

    到这一步,如果直接运行,并访问的话http://localhost:8090/hello/lazy_orders_index/,已经可以看到一个类别(categorys)的table展示出来了

    <div class="panel panel-info">
    <div class="panel-heading">
    <h3 class="panel-title">类别</h3>
    </div>
    <div class="panel-body">
    <div class="list-op" id="list_op">
    <button type="button" class="btn btn-default btn-sm" id="dgbtn_category_add">
    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
    </button>
    <button type="button" class="btn btn-default btn-sm" id="dgbtn_category_edit">
    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
    </button>
    <button type="button" class="btn btn-default btn-sm" data-message="[删除]未选中任何行" id="dgbtn_category_delete">
    <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
    </button>
    </div>
    <table class="table table-hover table-bordered" id="dgtable_category">
    <thead>
    <tr>
    <th></th>
    <th>ID</th>
    <th>类别名</th>
    </tr>
    </thead>
    <tbody>
    {% if categorys %} {% for category in categorys %}
    <tr>
    <td><input data-id="{{ category.category_id}}" type="checkbox" /></td>
    <td>{{category.category_id}}</td>
    <td>{{category.category_name}}</td>
    </tr>
    {% endfor %} {% else %}
    <tr>
    <td></td>
    </tr>
    {% endif %}
    </tbody>
    </table> </div> </div>

    运行之后展示的效果如下:

    aaarticlea/gif;base64,R0lGODlhIgIlAfcAAP///9nt9/X19d3d3bzo8TMzM/Ly8szMzNGTVHBwcJPR///Rk3Sx/9H//zNUk1ST0f+xdLF0MzN0sf//sZNUM///0XQzM7H//zqHrTMzdDMzVFQzM1QzVKr19fXJjnGq9dnLw47J9Y5SM5rt9zNxqvX1yfWqcdLS0qpxM8mOUlKOyVRUk5NUdHQzdJNUVPX1qmu599ntzTNSjlR0sVIzcT9AShcXI2uHrVOHvHEzM7H/0cDBxDMzcbHRk9m5vDMzUsn19bF0VOXl5dH/0fT09FIzUuTk5LH/sf7+/rPt9zqTw1OHrZPR0XQzVDqHvFQzdFIzM/j8/djY2IPL9zqfzXRUk5Oxk3R0dNH/sZqfrTNUdHRUM8Hq8nSTk9zw99GxdFSTsTqHtAsLGP39/fT091RUVHEzUpOTdNHRk8Pr81R0dLOrtMnJjuD0+EhJVJOTVNra2lOr29Pw9tbW1uHh43Sx0Y6qjtnt28Dp8tbW2Pf399zv+PPz81STkyoqNtPw9VOHtKussdLv9ZPRsSYmMmuTrd/w+KqqcVJxcarJjrO0vF1eaHGOjtHR/3R0VHRUVHSxscLq8muHtGuHvO709d/0+PH3+DExPdzc3tnLzYOTtIOrvHST0dTw9vf8/XR0scn1yXFxUvj5+5N0k3EzcfXJqjNUVP/RsaqOUpOxsZOx0VR0k8LCyTqTvCwsOMbGyrHR/8n1qqpxcfDw84OTrUBBS+jo6snJyXFSMzqfw7PL9/D3+O/09dGxk5OTsYO5w1OTtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQELgAAACwAAAAAIgIlAQAI/gABCBxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1BRRpHDhYDVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1LF2uaTlEORonkZU+Av4ADCx5MuLDhw4gTK17MuLHjx5AjS55MubLly5gza97MuXPgPV64eDIox4vn06hTq17NurXr17Bjy9bsRY5BLoZm697Nu7fv38CDC+dsKI1BAsOTK1/OvLnz584JHIdOvbr169izY5deELn27+DD/osfTx4yd4Ley6tfz769e+DnB6Z/T7++/fv4G8cXOD+///8ABhjefgD0J+CBCCao4G4EGrjggxBGKOFkDU5o4YUYZghYhYyBgMMIf/mgRBJ/xTAJiIrFcAMMGrbo4ouzcbhYJoVgwKKIJPqAQS66/AXCEhgEGaQTKAagIoswJqnkkprJyNgaI+J4ZGAeFukDkVVOyeSWXHapmJOO4UhYlYBdOUKWK3qp5ppqgmmYikLGKScGVATwo5xYfqglm3z26aKbit2hySYjjvlhmXmOsKefjDYKIaCIrRHGFD60UgiRhhZpp55pOurppwJCStgdtGAQR4hh/AJkkKcCRqar/pwiCeqstNInqmA/1mnYjyNmMeekaMpa67DEincrYmYaJiYIgEwRbLHQRrvddCneMOe1hQawhq5VPivtt+Aud+ybNwCj62DMThEipiV2Gu678PI27phL1JkFu64u0aq22RopibrxBiywa/MG5quN+SJs5xIsHozwnRj0O/DEFG9WsI50GubrpBV37DFrBX8s8si6hUzyySirZnLKLLeM2couxyyzYzDPbPPNhNWM884368zzzy77DPTQJwtN9NEeG4300gMrzfTT7zZY19RUV2311VhnrfXWXHftNV3HRSX22GSXbXZJDZ6t9tpst+12gWG/LffcdNftU9p25633/t58ox1334AHLvjgC+FN+OGIJ2634Yo37vjjUTEO+eSUVw6U5JZnrvnmL2HO+eegh+6R56KXbvrpDZGO+uqsn65667DHnvnrstdue+K036777nvnPhASQpxwwPDEF2/88cgnrzzyJxiBBEHAC7/89NRXb3zzz/8evPXcd8+887yHT5PvAgkxBxE0ESGFEASZj/5M6rM/kPvpry/+/TCRD8AJ79MkwAkE4Z9N/hfA/s2EgPhL4Er0dwCcNHAgD7RJBAEwQZpUUIEYHAkDHUiQC8pkgh6MSQgz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CBwIIEAAggINHiSo8KDBhA8bNiwocSFFhQgvZixIMCAAIfkEADcAAAAsjgDfAAEAEQCH9fX1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAkAAQgcSLCgwIAAIfkEAC8AAAAsjgDfAAEAEQCHMzMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAkAAQgcSLCgwIAAIf4VTWFkZSB3aXRoIFNjcmVlblRvR2lmADs=" alt="" />

    图中展示的效果,每次单击某一行,这一行所在checkbox就被选中了,需要单独写JS脚本来操作dom,核心代码如下:每一行都有注释,就不做解释了。

    $dgtable_category.on('click', 'tr', singleSelect);
    
    function singleSelect(e) {
    let inputChild = $(this).find('input');//获取该行input元素
    let checkBoxs = $(this).parents('.table').find('input');//获取table中所有的input元素
    if (inputChild[0].checked) {//如果该行本来为选中状态 则置为非选中状态
    checkBoxs.prop('checked', false);
    } else {//如果该行为非选中状态
    checkBoxs.prop('checked', false);//先将table中所有的checkbox置为非选中状态
    inputChild.prop('checked', true);//然后将该行置为选中状态
    } var target = e.target;//如果点击的是checkbox而不是tr 那么需要单独处理
    if (target.type == "checkbox") {
    inputChild.prop('checked', !inputChild[0].checked);
    }
    }

    对JS操作DOM不熟练的话,写这些代码还是需要花一定的时间的,虽然最终也能整出来,但是效率太低,如果有现成的框架有这些效果,那么,用起来就轻松很多,所以引入了Bootstrap Table这个组件,那么使用第三方组件的好处是什么呢?

    1.花更短的时间,却能达到相同的效果,站在伟人的肩膀上更容易成功,不重复造轮子

    2.服务器渲染html文本花费更少的时间,返回的html代码也更少,减少带宽

2)使用第三方组件Bootstrap Table渲染绑定数据

  • 这部分,放到下一篇来介绍,因为想要介绍的内容还挺多,其次,夜又深了.....困了,想早点洗洗睡

目前,呈现的效果如下图:前两个table中的效果是使用Django 标记渲染html呈现的效果,后两个table是使用BootStrap Table渲染数据的效果,涉及到Django的数据与JavaScript数据交互。

VS2019 开发Django(九)------内置模板和过滤器的更多相关文章

  1. Django 内置模板标签和过滤器

    一.内置模板标签 语法:{%  %} autoescape : 是否转义,on或off作为参数,并确定自动转义是否在块内有效.该块以endautoescape结束 {% autoescape on % ...

  2. Django内置模板标签

    Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...

  3. 第三章:模版层 - 2:Django内置模板标签

    Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...

  4. VS2019 开发Django(八)------视图

    导航:VS2019开发Django系列 这几天学习了一下Django的视图和模板,从这几天的学习进度来看,视图这里并没有花很多的时间,相反的,模板花费了大量的时间,主要原因还是因为对Jquery操作d ...

  5. VS2019 开发Django(二)------hello world!

    导航:VS2019开发Django系列 第一篇介绍了安装Django,那么,今天的主题内容是使用VS编写第一个Django应用. 1)新建Django Web项目 选择新建Django Web项目,在 ...

  6. VS2019 开发Django(五)------createsuperuser

    导航:VS2019开发Django系列 上篇我们已经把LazyOrders中用到的C#的实体转成了Django中的Entity,并且已经迁移数据库成功,那么,今天继续介绍Django中内置的数据库操作 ...

  7. VS2019 开发Django(四)------models

    导航:VS2019开发Django系列 继上篇我们匆匆迁移数据库成功之后,又花了一个晚上研究了Django的模型,这里的模型其实就是ORM模型中的Entity,.Net里边用的比较多的有Entity ...

  8. django的内置信号

    Model singnalspre_init 在model执行构造方法之前自动触发post_init django的model在执行构造方法之后,自动触发pre_save django的对象保存之前, ...

  9. VS2019 开发Django(十)------JavaScript与Django的数据交互

    导航:VS2019开发Django系列 这一篇介绍如何使用BootStrap Table这个组件来绑定渲染数据, 1)先来看一下BootStrap Table是怎么绑定数据的. 通过数据属性 给定da ...

随机推荐

  1. GitHub上优秀的开源项目(转载)

    转载出处:https://github.com/Trinea/android-open-project 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.A ...

  2. 20191017-7 alpha week 2/2 Scrum立会报告+燃尽图 06

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9803 一.小组情况 队名:扛把子 组长:迟俊文 组员:宋晓丽 梁梦瑶 韩昊 ...

  3. c语言l博客作业03

    问题 答案 这个作业属于哪个课程 c语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/8727 我在这 ...

  4. C语言博客作业10

    一.本周教学内容&目标 第4章 循环结构 4.5 综合介绍循环结构的程序设计,涉及到多个典型算法.要求学生能够根据实际情况,选择合适的算法.合理的循环结构,熟练的编写程序. 二.本周作业头 这 ...

  5. 在开发Thinkphp5.0智慧软文个人微信个人支付宝企业支付宝接口时遇到的坑

    在开发Thinkphp5.0智慧软文个人微信个人支付宝企业支付宝接口时遇到回调后提示成功但是不能自动充值的情况,现在记录一下: 两种情况 1.个人支付宝  个人微信遇到的情况 因为个人支付宝 个人微信 ...

  6. 2019-2020-1 20199304《Linux内核原理与分析》第三周作业

    1.操作系统是如何工作的? 计算机三个法宝(3个关键性的方法机制): 存储程序计算机.函数调用堆栈.中断机制. 1.1堆栈: 在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构.堆栈都是一种数 ...

  7. 在modelarts上部署backend为TensorFlow的keras模型

    最近老山在研究在modelarts上部署mask-rcnn,源代码提供的是keras模型.我们可以将keras转化成savedModel模型,在TensorFlow Serving上部署,可参考老山的 ...

  8. Windows下利用IIS建立网站并实现局域网共享

    https://blog.csdn.net/qq_41485414/article/details/82754252 https://www.cnblogs.com/linuxprobe-sarah/ ...

  9. layui中formSelects的使用

    1.下载 下载地址:https://github.com/hnzzmsf/layui-formSelects 2. 引入 //引入formSelects.css <link rel=" ...

  10. 卸载&&更新docker(ubuntu)

    卸载docker: apt-get purge lxc-docker apt-get autoremove 更新docker: apt-get update apt-get install lxc-d ...