Django:(06)Django模版

 

一、模版的使用

配置

如果是命令行创建的项目需要手动配置模版文件目录(如果是Pycharm创建的项目则无需配置)
在项目根目录下创建目录templates, 用来存放模版文件
在项目的配置文件夹settings.py里配置:

# 指定模版文件保存到那个目录下
TEMPLATES=[ 'DIRS':[os.path.join(BASE_DIR, 'templates')],]

 

定义

在templates目录中存放模板文件,如index.html


渲染

方式一: 通过render函数

return render(request, 'index.html', context)
  • 参数1:请求对象
  • 参数2:模块路径
  • 参数3:字典数据

 

方式二: 通过Template对象的render方法

return HttpResponse( loader.get_template('index.html') 
.render(context))

 

二、模版语法

1、模板变量

变量规则: 变量名必须由字母、数字、下划线(不能以下划线开头)和点组成
语法:{{变量}}
数据类型:python内建类型或者对象
模板变量从哪里存送进来:

//在模板渲染的时候,通过字典的形式传入
(return render(request, 'index.html', 字典)) //模板变量名就是这个字典里的键名

 

2、模板语句

for循环

{% if ... %}
逻辑1
{% elif ... %}
逻辑2
{% else %}
逻辑3
{% endif %}

 


if条件

{% if ... %}
逻辑1
{% elif ... %}
逻辑2
{% else %}
逻辑3
{% endif %}

 


比较运算符

==
!=
<
>
<=
>=
注意:运算符左右两侧必须有空格。

 


布尔运算符

and
or
not
注意:运算符左右两侧必须有空格。

 


3、过滤器

语法:变量|过滤器:参数
safe
length:返回字符/元素个数
default:data|default:'默认值'
date: value|date:"Y年m月j日 H时i分s秒"; 格式符:Y表示年,m表示月,d表示日01,j表示日1,H表示时24,h表示时12,i表示分,s表示秒

4、注释

单行
{#...#}

多行
{% comment %}
...
{% endcomment %}

 

5、模板继承


父模板

如果发现在多个模板中某些内容相同,那就可以使用block标签把这段内容定义到父模板中。

{% block 块名称 %}
预留区域,可以编写默认内容,也可以没有默认内容
{% endblock %}


子模版:

  • 继承声明: 
    {% extends "父模板路径" %}

     

  • 对有需要的block进行重写:
    {% block 名称 %}
    子模板的内容
    {{ block.super }} 显示父模板中block的内容
    {% endblock %}

    不用重写父模版中的所有block,如果子模版没有重写,则使用父模版定义的默认值。
    可以使用 block.super 来包含父模板的块中定义的内容

 

posted @ 2018-11-20 21:40  橘个栗子  阅读(132)  评论(0编辑  收藏  举报