templates 该目录本身没有,如果我们需要使用,需要我们自己创建,该目录名通常为templates

1、创建位置:

1.直接在应用下创建该目录,应用下的html模板,能直接在应用下的views中使用,一般也只给自己的应用使用

2.直接在项目下创建该目录,在项目下创建的改目录,所有的应用中的views都可以方便的使用

3.若果是项目下的templates目录,需要配置才可以使用

配置:1.在setting的TEMPLATES中配置

'DIRS': [os.path.join(BASE_DIR,'templates')],


                      2.项目不能识别templates为模板目录,需要将该目录标记成模板目录才可以使用
                         标记:  templates目录右键 ---- mark Directory  as ---- template Folder看到目录变成紫色即可

注:如果遇到template不能识别,重新做以上操作

2、模板语法

1、变量

1.变量通常在views中定义,然后传递给模板,模板中直接使用就可以
           2.使用变量: {{ 变量名 }}    用两个大括号括起来
           3.注意: 如果模板板中的变量没有定义就使用了, 模板不会报错,当作空使用

2、语法

1、“.”语法

1.1、 . 可以用来调用属性 
          格式:  对象名.属性名  
1.2.、.  可以用来调用方法
         格式: 对象名.方法名    注意不加()
1.3、如果. 用在集合(list,tuple...)的 后面,可以连接索引, 可以获取索引位置的值 
         格式: 集合.索引    相当于python的:  集合[索引]
1.4、如果 . 用在字典的后面, 可以连接 可以,可以获取key对应的值
        格式: 字典.key    相当于python的:  字典[key]

2、for语句

2.1、for 循环

{% for 变量名 in 集合名%}

循环体

{% endfor %}

2.2、

{% for 变量名 in 集合名 %}
          循环体
        {% empty %}
           如果集合为空,应该显示的内容
        {% endfor %}

2.3、forloop  循环的技术器
       forloop.counter  从1开始计数
       forloop.counter0  从0开始计数
       forloop.first  是否是第一个数据
       forloop.last  是否是最后一个数据
       forloop.revcounter  从1开始计数, 倒着计数,即最大数是第一个
       forloop.revcounter0  从0开始计数, 倒着计数,即最大数是第一个

3、判断语句

3.1、if语句
       {% if 判断表达式1 %}
                如果满足条件1就执行表达式1
       {% elif 判断表达式2 %}
                    如果满足条件2就执行表达式2 
        {% else %}    
                   否则执行表达式3
        {% endif %}

注:elif与else可以省略

3.2、判断2个值是否相等

{% ifequal valu1 value2 %}
         如果value1 等于value2执行表达式

{% endifequal %}
注意: 当value1与value2值相等,且类型也一样的时候才成立

3.3、比较运算符

>    <    >=    <=     ==    !=

比较运算符可用在if语句中作判断使用

4、运算方法

4.1、加法/减法  {% 值1|add值2 %}    值1 + 值2    注:当值2为负数时,即为减法

4.2、乘法/除法  {% widthratio value 分母 分子 %}    注:格式为: value * 分子 / 分母

4.3、整除   格式:{{ value|divisibleby:值  }}    value是否能整除 值

4.4、大小写转换 
         转换成小写:{{ value|lower }}
         转换成大写:{{ value|upper }}

4.5、字符串拼接: {{ 集合|join:"拼接的字符" }}

5、转义字符

5.1、在模板中  使用{{ 变量|safe }}    是得变量的字符串中的html标签生效

5.2、使用 autoescape 
  ①    {% autoescape on %}
          {#     这里面的内容就是不生效的HTML字符串#}
          {{ strHtml }}
          {% endautoescape %}

②   {% autoescape off %}
          {#     这里面的内容就是可以生效的HTML字符串#}
          {{ 变量 }}                                                                                                                                                                                              {% endautoescape %}

6、模板的继承

6.1、继承

在子模板首行写入{% extends '父模板路基' %} ,即可继承父模板

例:

6.2、在父模板中为子模板预留位置

6.2.1、在父模板中预留位置

在需要填充子模板内容的地方 写上 :

{% block 坑的名字  %}

父模板可在此写入内容

{% endblock %}

6.2.2、在子模板中将数据填入预留的位置

{% block 坑的名字  %}

填充的内容

{% endblock %}

注:子模板填充内容会将父模板的内容覆盖

6.2.3、在子模板填充内容的同时希望保留父模板的内容

在填充内容的首行加上 {{ block.super }}

例:{% block head %}
            {{ block.super }}
            <h1>xxxx</h1>
         {% endblock %}

6.3、将多个分散的html使用include合并成一个完整的html

格式:{% include 'html文件' %}

例:将head.html、body.html、foot.html三个html文件合并

head.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>这是头
</body>
</html>

bady.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div style="height: 200px; width: 200px; background: pink">身子
</div>
</body>
</html>

foot.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>这是臭脚丫子
</body>
</html>

将三者合并:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
{#    将零散的html拼接成一个完整的html #}{% include 'head.html' %}{% include 'bannar.html' %}{% include 'foot.html' %}
</body>
</html>

效果图:

7、模板的简单加载原理
模板的加载过程
def loadTem(request):
   # 7.1、先将模板加载到views函数中
    template = loader.get_template("HTML文件")
    # 7.2、把数据给模板,并转换成html形式的字符串
    htmlData = template.render(context={"content":"内容xxxxxx"})
    # 7.3、把数据作为相应体,给客户端   html本质就是字符串
     return  HttpResponse(htmlData)

templates模板文件相关推荐

  1. 将moss 2007的模板文件导入到moss 2010

    最近公司HR请请将一个moss2007的调查模板文件导入到我们部门的Moss protal 上面. 我想这是举手之劳,就爽快的答应了. 但是导入时却报如下错误: Error Microsoft Sha ...

  2. django-2 模板文件的加载

    django-2  模板文件的加载 1.创建模板文件 index.html 2.在django使用模板文件  需要在app下创建templates文件夹   此为django固定模板文件位置 3.编辑 ...

  3. Elasticsearch——Templates 模板

    2019独角兽企业重金招聘Python工程师标准>>> Elasticsearch--Templates 模板 博客分类: java 搜索引擎,爬虫 刚开始的时候,每次实验都去改/e ...

  4. 自己动手实现简易代码生成器、采用文本模板文件生成服务层、服务层接口代码的做法参考...

    为什么80%的码农都做不了架构师?>>>    最近受到 单程列车 http://www.cnblogs.com/zhaojingjing/  的启发,让我做一个模板文件来生成代码, ...

  5. Django框架(8.Django中的模板文件的使用和模板变量的简单使用)

    为什么使用模板 通过视图可以给用户返回一些字符串等等, 那如何向请求者返回一个漂亮的页面呢? 肯定需要用到html.css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为 ...

  6. Django(part53)--404模板文件

    学习笔记,仅供参考 404模板文件 我们可以在项目下的模板文件夹templates内添加 404.html 模版,当响应返回HttpResponseNotFound 或 raise Http404时, ...

  7. Django之templates模板

    模板的使用 1.如何使用模板 在manage.py的同级文件夹中创建templates 在setting.py的文件中把第58行'DIRS': [ ],改成'DIRS': [os.path.join( ...

  8. 修改了模板文件tpl如何立即生效_Views视图与模板

    一.概述 用户请求到视图流程: 当有人访问我们django项目的时候 例如127.0.0.1:8000/polls/23,django首先到加载mysite.urls模块 在mysite.urls中发 ...

  9. Python测试开发django5.templates模板变量传参

    上一篇,我们学习了Python测试开发django4.templates模板配置 templates模板中html文件是一个静态页面,写四的,如果有时我们想动态的传入一些不同的参数,想实现在一个固定的 ...

  10. Python测试开发django4.templates模板配置

    [上一篇]我们讲了Python测试开发django3.视图和URL配置 今天详细介绍下 Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容. 我们已经知道创建项目用django-a ...

最新文章

  1. 关于小程序云开发的一些经典问题处理
  2. 有两个不同list,需要对比两个list内容且输出差异的内容
  3. 朝鲜时蔬(分数据点写算法+毒瘤数学)
  4. 2-14 三级菜单
  5. 如何看待EMNLP2021 best paper? 邱锡鹏教授:以为走错会场了
  6. Swift仿写喜马拉雅FM
  7. vue项目中input框默认获得焦点,回车选中输入文本
  8. 润乾报表-数据源的选取不能选视图
  9. idm6.40最新版exe下载器介绍
  10. 微信短视频小程序——视频封面,视频缩略图
  11. Android APP安全测试
  12. HDU2586 How far away ?(LCA模板题)
  13. 2019年成功与失败的危机公关案例分析
  14. 使用NPOI设置Excel表的单元格背景颜色
  15. 硬件大厂技术一面题目
  16. python2exe_Python 使用Py2exe进行bin化
  17. 二进制、八进制、十进制和十六进制的转换
  18. C语言求1到10以内的约数,倍数和约数 教学设计资料
  19. iOS - 手动下架的应用后快速恢复上架
  20. Android 缺少SO库(只有armabi)的解决办法

热门文章

  1. 4-google translate插件安装及使用
  2. Caused by: org.greenrobot.eventbus.EventBusException: Subscriber class com.xxx.app.ui.activity
  3. RCC_APB2Periph_ALL 哪儿里去了?
  4. 更改计算机时间格式,修改电脑日期时间显示格式
  5. C# 插入、删除Excel分页符
  6. java怎么加锁_JAVA多线程(3)——如何加锁
  7. 240升水,运往干旱地区,最多携带60升,前进1公里耗1升,最多可赚多少钱
  8. LOJ 6437 PKUSC2018 PKUSC
  9. 什么是化工工程?重化工业包含哪些项目?
  10. c语言编程竞赛活动主题,第三届“希望之星”C语言编程大赛系列活动