1.MVC和MTV

  1. MVC
  2. C Controller : 逻辑的控制
  3. M Model : 存取数据
  4. V View : 信息的展示
  5. MTV
    1. M : model ORM操作
    2. T: Template 模板
    3. V: View 业务逻辑

2.变量

{{ 变量 }} 使用.来获相关属性和方法

标签 {% %}

3.过滤器

语法: {{ value|filter_name:参数 }} # 参数最多只有一个

  1. 内置过滤器

    1. default 提供默认值

      '|'左右没有空格没有空格没有空格

      {{ kong|default:'nothing' }}

    2. date 日期格式化

      {{ now|date:'Y-m-d H:i:s' }}

      settings中可配置全局的日期时间格式化
      USE_L10N = False
      DATETIME_FORMAT = 'Y-m-d H:i:s'
    3. safe 不进行转义

      {{ js|safe }} # 告诉Django 前面的内容是安全的,不必转义

    4. # 设置默认值
      # 未定义的变量
      {{ qwe|default:'nothing' }} # nothing
      # 空列表
      {{ empty|default:'nothing'}} # nothing # 或者在配置文件中全局配置设置默认值
      settings-->TEMPLATES-->OPTIONS-->和'context_processors'同级增加
      'string_if_invalid':'找不到'
      此优先级比在变量中设置default高, 但是[]空列表不在此范畴,只适用于default # filesizeformat 文件大小单位转换
      # 将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)
      {{ value|filesizeformat }} # add 相加,拼接
      # 可以将'1'转化成数字进行相加. 若字符串无法转数字,则进行拼接. 如果是两个列表,可以合并成1个列表
      {{ num|add:'1' }}
      {{ lst|add:lst2 }} # length 显示长度
      {{ lst|length }}
      {{ string|length }}
      {{ lst|add:lst2|length }} # slice 切片
      {{ lst|slice:'1:4:2' }}
      {{ lst|slice:'-1:-4:-2' }}
      {{ lst|first }}
      {{ lst|last }}
      # 截断
      {{ long_str|truncatechars:9 }}
      只显示9个字符,其中包括...占3位, 也就是6个字符,剩下的内容用...表示省略
  2. 自定义filter

    1. 定义

      1. 在APP下创建一个叫templatetags的python包; 不能变的,必须是包,名字必须是templatetags

      2. 在包中创建一个py文件 my_filters;

      3. 在py文件中写代码

        from django import template

        register = template.Library()  # register的名字不能改
      4. 写函数

        @register.filter

        def add_dsb(value, arg):

        return "{}_{}".format(value, arg)

      5. 给定义的函数加装饰器

        @register.filter

        def add_dsb(value, arg):

    2. 使用

      在模板中使用:

      1. 导入定义的文件

        {% load my_filter %}
      2. 使用过滤器

        {{ name|add_dsb:'very_dsb' }}

4.标签

{% csrf_token %}

添加在form表单中   就可以提交POST请求

5.母版和继承

  1. 母版

    就是一个普通的HTML文本,将多个页面公共部分的内容提取出来,在页面中定义多个block块

    {% block content %}

    {% endblock %}

    1. 继承

      在子页面中,继承母版 {% extends 'base.html' %}

      可以重新书写block块中内容
    2. 注意事项
    3. {% extends 'base.html' %} 写在第一行,上面不写内容
    4. 要修改的 内容写在block块中,写在外面不显示
    5. {% extends 'base.html' %} base.html 记得带上引号,不然当做变量去查找
    6. 定义多个block块,一般要定义上 css和js

6.组件

把多个页面公用的HTML代码放在一个HTML文件中    —— 》组件  nav.html

使用:  {% include  ‘nav.html’  %}

7.静态文件相关

{% load static %}

{% static '静态文件相对路径' %} ——》 获取到别名,跟后面的参数进行拼接

{% get_static_prefix %} ——》 获取到别名

<link rel="stylesheet" href="{% get_static_prefix %}plugins/bootstrap-3.3.7/css/bootstrap.css">

8.自定义inclusion_tag

Day062--django--模板,母版和继承的更多相关文章

  1. django之母版的继承

    模板继承示例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  2. django模板中的extends和include使用方法

    一.extends使用方法 首先extends也就是继承,子类继承父类的一些特性.在django模板中通过继承可以减少重复代码. 首先我们建立一个app,名字叫做hello.别忘了在settings. ...

  3. Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag

    Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...

  4. Django(母版和继承)

    day66 参考:http://www.cnblogs.com/liwenzhou/p/7931828.html#autoid-2-3-6 内容回顾     1. 模板系统(字符串替换)        ...

  5. Django:母版、继承、组件、自定义标签

    1.for循环应用 1.1for Variable Description forloop.counter 当前循环的索引值(从1开始) forloop.counter0 当前循环的索引值(从0开始) ...

  6. Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

    前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 ...

  7. django模板继承

    可以将每个html公共的部分做成一个基本模板,其他模板继承这个基本模板,则会拥有基本模板的所有内容. views.py from django.shortcuts import render def ...

  8. [py][mx]django模板继承-课程列表页

    课程列表页分析 1,机构类型 2,所在地区 3.排序 学习人数 先分析下 纵观页面,页头页脚都一样. django提供了模板继承. 至少 不同页面的title 面包屑路径 content内容不一致,以 ...

  9. [py]django模板继承

    参考 1.展示arr,d等数据类型 2.逻辑for if / url获取 3.获取内置变量 django模板继承 通过搞一个base.html 这个base.html可以包含两类 block片断 其他 ...

  10. Python学习---django模板继承180123

    django模板继承  --20180123 a.include 模板标签 b.extend(继承)模板标签 ------include 模板标签 该标签允许在(模板中)包含其它的模板的内容. 标签的 ...

随机推荐

  1. Dynamics 365中的批量删除作业执行频率可以高于每天一次吗?

    微软动态CRM专家罗勇 ,回复317或者20190314可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 我先来做一个例子,登 ...

  2. 基于jwt的用户登录认证

    最近在app的开发过程中,做了一个基于token的用户登录认证,使用vue+node+mongoDB进行的开发,前来总结一下. token认证流程: 1:用户输入用户名和密码,进行登录操作,发送登录信 ...

  3. java8新特性-默认方法

    作为一个java程序猿,经常会被问基础怎么样,对于这个问题,我理解的有两方面:一是对于java基础的理解和掌握,比如JDK的相关特性:二是工作的经历,毕竟,语言编程是一门实战性质的艺术,就算掌握了千万 ...

  4. Java基础系列--05_面向对象

    1.概述: (1)面向过程:将问题一步一步的解决的过程(详细步骤),在C语言中所有的代码都是基于过程化的代码. (2)面向对象:面向对象是基于面向过程的编程思想,所有的事情都交由创建出来的对象去指挥. ...

  5. RabbitMQ框架构建系列(二)——RabbitMQ基础知识介绍

    上一篇记录了一下AMQP协议,RabbitMQ是一个Erlang开发的AMQP协议的开源实现.这一篇简单的介绍一下RabbitMQ的基本原理. 一.RabbitMQ的特点 1.可靠性:RabbitMQ ...

  6. 分享两个细致、全面讲解Vue和React源码的链接

    Vue: 1.http://hcysun.me/vue-design/ 2.https://ustbhuangyi.github.io/vue-analysis/(带视频,但收费) React: 3. ...

  7. SpringBoot中使用JNnit4(一)之Mockito的使用

    经过入门篇,可以编写出一个简单的测试用例. 这篇讲的是BDDMockito的使用. BDDMockito用于测试时进行打桩处理:通过它可以指定某个类的某个方法在什么情况下返回什么样的值. 在单元测试时 ...

  8. 从输出日志中提取接口的入参和返回做为用例导入到excel中

    1  背景 接口用例已经在项目中的yml文件中编写,但是yml文件不能做为交付文档用,本文对工作中从接口输出日志中提取用例信息,并导入到excel文件中做了总些 2  工具 idea,notepad+ ...

  9. 毕业设计(2):基于MicroPython的家庭可燃气体泄露微信报警器

    在我们平时的生活中,经常看到因气体泄漏发生爆炸事故的新闻.房屋起火.人体中毒等此类的新闻报道层出不穷.这种情况下,人民就发明了可燃气体报警器.当工业环境.日常生活环境(如使用天然气的厨房)中可燃性气体 ...

  10. 记录学习antd design pro dva的过程,主要记错, 多图预警,如有理解偏差,忘指出,多谢!

    首要问题: 如何增加菜单项 答案: 在router.config中添加路由,在locales语言国际化增加选项 问题1: 答案1: 问题2: 这个要修改state,正确写法 存在的疑惑:为什么不能直接 ...