Django框架
-模板
一、模板的功能
产生html页面,控制页面上展示的内容。模板文件不仅仅是一个html文件,模板文件包含两部分内容
静态内容
css、js、html
动态内容
用于动态产生一些网页内容,通过模板语言来产生
二、模板文件的使用
render()方法
from django.shortcuts import render
视图里面默认导入django.shortcuts的render()方法
render(request, "模板路径", {参数})方法
返回一个渲染好的html内容的HttpResponse对象模板文件的加载顺序
1、首先去配置的模板目录(可以配置多个目录,从前往后找)下去找模板文件
2、去INSTALL_APPS下面的每个应用去找模板文件,前提是应用中必须有templates文件夹
三、模板语言DTL(Django Template Language)
1、模板变量
由数字、字母、下划线和点组成的,不能以下划线开头
使用模板变量
{ {模板变量名}}
模板变量解析顺序
例:{ {book.btitle}}
(1)首先把book当成一个字典,把btitle当成键名,进行取值book["btitle"]
(2)把book当前一个对象,把btitle当成属性,进行取值book.btitle
(3)把book当前一个对象,把btitle当成对象方法,进行取值book.btitle()
例:{ {book.0}}
(1)首先把book当成一个字典,把0当成键名,进行取值book["0"]
(2)把book当成一个列表,把0当成下标,进行取值book[0]
如果解析失败,则产生内容时用空字符串填充模板变量
使用模板变量时,前面可能是一个字典,也可能是个对象,还可能是个列表2、模板标签:{%代码段%}
for循环
{%for x in 列表%}
#列表不为空执行
{%empty%}
#列表为空时执行
{%endfor%}
可以通过{ {forloop.counter}}得到for循环遍历到了第几次
if分支
{%if 条件%}
#满足条件执行
{%elif 条件%}
#满足条件执行
{%else%}
#不满足以上条件执行
{%endif%}关系比较操作:>、<、>=、<=、==、!=
注:进行比较操作时,比较操作符两边必须有空格
逻辑运算:not、and、or
3、过滤器作用:用于对模板变量进行操作
使用过滤器格式:过滤器就相当于一个函数,“:”后面写参数
模板变量 | 过滤器:参数
模板变量 | 过滤器常用过滤器
date:改变日期显示格式
例:把日期显示成xxxx年xx月xx日形式
{ {book.bpub_date|date:"Y年-m月-d日"}}
length:求字符串、列表长度
例:{ {book.btitle|length}}
default:设置模板变量默认值
当模板变量不存在时,使用默认值
例:{ {xxx|default:"hello"}}自定义过滤器步骤
1、应用下面新建一个python的包,包名为templatetags
2、包下面创建一个python文件,名字可自定义
3、在python文件里面自定义过滤器,过滤器其实就是python的函数
(1)导入Library这个类
from django.template import Library
(2)创建一个Lib