一、模板路径的查找:

  查找顺序:(现在哪找到就用那个)

    首先在主目录的 setting.py 文件里的 TEMPLATES 中的 DIRS 里找;

    其次如果 DIRS 中的 APP_DIRS : 'True' 的时候在 settings.py 中的 INSTALLED_APPS 里注册的 app 里找 templates;

  静态页面:

    不随着客户端的变化而变化;

   动态页面:

    内容随着时间或不同的用户变化而变化

二、模板变量使用规则:

  1、语法:{{ 变量名 }}

  2、命名由字母和数字及下划线组成,不能以下划线开头;不能有空格和标点符号

  3、可以使用字典,方法,模板,函数,列表等

  4、不要和 python 或 django 关键字重名

  5、变量值可以时任何数据类型

  注意:

    1、如果 data 是一个字典,且有 items 这个键时 ,那么访问 data.items 时将会访问这个 key 名为 items 的值;当没有这个 items 作为键时,将会时使用 items 这个方法(将字典中的所有键值对以元祖形式列出);

    2、点(.)在模板渲染时有特殊含义;变量名中点(.)表示查找;

    3、如果结果是可调用的,则调用它时不带参数。调用结果成为模板的值;

    4、渲染失败,返回 '' (空)

 例:

app book/views.py文件:

/templates/book/indes.html文件:

三、过滤器(filter):

  作用:对变量进行过滤;在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后在替换原来的变量展示出来

  add   将参数与值相加 首先尝试转换成整数相加,失败,则尝试所有可能,字符串,列表等。{{ value|add:"2" }}

  capfirst  首字母大写,如果第一个字母不是字母则不起作用。{{ value|capfirst }}

  date    日期格式化 {{ value|date:"D d M Y" }}

  time     时间格式化 {{ value|time:"H:i" }} 格式化格式见官方文档:https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date

  default    如果变量解析失败,使用给定的默认值。{{ value|default:"nothing" }}(注意如果value是''空字符串,输出将会是'nothing')

  first    返回列表的第一个元素 {{ value|first }}

  last    返回列表的最有一个元素 {{ value|last }}

  slice     返回一个列表的切片 {{ some_list|slice:":2" }}

  join    连接字符串列表 与str.join(list)一样 {{ value|join:" // " }}

  floatformat 浮点数格式化 不指定小数位参数,默认保留一个为小数

    value     Template        Output

    34.23234   {{ value|floatformat }}   34.2

    34.23234   {{ value|floatformat:3 }}  34.232

  length   返回字符串或列表的长度 {{ value|length }}

  length_is 判断字符串或列表长度是否指定的值,相等返回True {{ value|length_is:"4" }}

  lower    字符串中的字母都变小写{{ value|lower }}

  upper      字符串中的字母都变大写{{ value|upper }}

  cut     剪切 {{ value|cut:" " }} —— 把字符串中所有空格去掉

  title    标题化,首字母大写 {{ value|title }}

  safe   关闭变量的自动转义,使html标签生效{{ value|safe }} ———— XSS: 跨域脚本攻击

  

  注意:

    使用参数的时候,冒号和参数之间不能有任何空格,一定要紧挨着

  date 和 time 过滤器格式:

例:

    关于自动转义:

      自动转义是将变量的一些特殊字符,比如左右箭头(< >)转义成 html 代码,这样做的目的时为了处理一些不安全的变量

      < —— 转义成 <

      > —— 转义成 >

      ' —— 转义成 '

      " —— 转义成 "

      & —— 转义成 &

四、静态文件目录:

  在项目目录下创建 static 的目录,为了区分开各种类型的文件分别创建 css,image,js 的目录;

  配置:

    在主目录的 settings.py 文件中添加 STATICFILES_DIRS 设置静态文件目录路径,同 templates

    STATIC_URL = '/static/' 两个 / 都要加,静态文件的存放位置;自定义,可以自定义写(想些什么写什么)

  引用:

    第一种:

      硬编码,通过 STATIC_URL 来引入

      <link rel="stylesheet" href="/STATIC_URL定义的值/找到对应的文件/">

    第二种:

      通过模板标签

      在要使用的 html 文件上面加上 {% load static %}

      <link rel="stylesheet" href="{% static '所需文件的相对路径' %}">

Django 学习第三天——模板变量及模板过滤器的更多相关文章

  1. Django学习系列12:把Python变量传入模板中渲染

    从视图的Python代码中把变量传入HTML模板. 模板中使用哪种句法引入Python对象,要使用的符号{{...}},它会以字符串的形式显示对象: <html> <head> ...

  2. Django框架基础知识03-模板变量及模板过滤器

    模板变量及模板过滤器. 1.模板路径的查找 -查找顺序 1.尝试,在app目录下存放模板. -两种方案 1.app项目文件夹下存放. 2.templates文件夹下分类存放. 首先查找项目settin ...

  3. Django-2- 模板路径查找,模板变量,模板过滤器,静态文件引用

    模板路径查找 路径配置 2. templates模板查找有两种方式 2.1 - 在APP目录下创建templates文件夹,在文件夹下创建模板 2.2 - 在项目根目录下创建templates文件夹, ...

  4. Django学习(三)---Models(ORM框架)

    1) Django 中Models是与数据库相关的,与数据库相关的代码一般写在 models.py中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在sett ...

  5. Java学习笔记三:Java的变量、常量、变量的类型及使用规则

    Java的变量.常量.变量的类型及使用规则 每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字.关键字对 Java 的编译器有着特殊的意义. 一:Java中的关键字: 注:Java ...

  6. Django(十五)模板详解:模板标签、过滤器、模板注释、模板继承、html转义

    一.模板的基础配置及使用 [参考]https://docs.djangoproject.com/zh-hans/3.0/topics/templates/ 作为Web框架,Django提供了模板,用于 ...

  7. Django 学习笔记(四)模板变量

    关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...

  8. Django 学习笔记(三)模板导入

    本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...

  9. The Definitive Guide To Django 2 学习笔记(七) 第四章 模板 (三)使用模板系统

    接下来,我们开始学习如何使用模板系统,但我们并不和前面说的View相结合,我们的这里的目的是展示模板系统是如何独立于Django框架运行的.下面是在pyhon代码中使用Django模板系统的基础例子: ...

随机推荐

  1. Confluence 6 配置自动备份

    希望配置 Confluence 备份: 进入  > 基本配置(General Configuration) > 备份管理(Backup administration). 选择 编辑(Edi ...

  2. Confluence 6 当前使用的数据库状态

    进入  > 基本配置(General Configuration) > 问题检查和支持工具(Troubleshooting and support tools) 你就可以看到当前使用的数据 ...

  3. ES6之Set与Map加深理解

    Set 类似于数组,但是成员的值都是唯一的,没有重复的值,有序. Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数,用来初始化. 用途 数组去重: [...new ...

  4. SpringData分页功能

    在SpringData中实现分页功能我们需要将接口实现PagingAndSortingRepository这个接口提供了分页查询的方法 Page<T> findAll(Pageable p ...

  5. kafka 的安装部署

    Kafka 的简介: Kafka 是一款分布式消息发布和订阅系统,具有高性能.高吞吐量的特点而被广泛应用与大数据传输场景.它是由 LinkedIn 公司开发,使用 Scala 语言编写,之后成为 Ap ...

  6. MYSQL安装报错 -- 出现Failed to find valid data directory.

    运行环境:windows10数据库版本:mysql.8.0.12安装方式:rpm包直接安装 问题描述:mysql初始化的时候找不到对应的数据库存储目录 报错代码: 2018-10-13T03:29:2 ...

  7. poj2728 生成树01分数规划 (二分答案)

    给定整数序列a,b,求出下式的最大值 sum{ai*xi}/sum{bi*xi},xi=0|1 通俗来说,就是选出一些整数对(ai,bi),使得选出的a之和与选出的b之和商最大化 二分答案L,即选出的 ...

  8. 蓝桥杯第十届真题B组(2019年)

    2019年第十届蓝桥杯大赛软件类省赛C/C++大学B组# 试题 A:组队# 本题总分:5分[问题描述]作为篮球队教练,你需要从以下名单中选出 1号位至 5号位各一名球员,组成球队的首发阵容.每位球员担 ...

  9. K/3 Cloud Web API接口说明文

    K/3 Cloud Web API接口说明文 目的 三方集成,提供第三方系统与Cloud集成调用接口. 技术实现 HTTP + Json 提供标准接口 编号 名称 说明 1 Kingdee.BOS.W ...

  10. jQuery 核心 - noConflict() 方法[避免冲突的方法]

    定义和用法 noConflict() 方法让渡变量 $ 的 jQuery 控制权. 语法 jQuery.noConflict([removeAll]) 参数描述removeAll布尔值.指示是否允许彻 ...