1模板路径的查找
首先去settings(项目设置)——TEMPLATES模板设置的路径——DIRS(首先查找的、优先级高于APP)
APP_DIRS(应用目录):默认值为True时,django会到 INSTALLED_APPS (注册app)下依次查找
再TEMPLATES创建和APP同名的文件夹,方便后期维护相应的APP
***只要找到一个符号的模板,就返回结果
2模板变量
静态页面:内容绝对的,不随着时间的改变而改变,不随着客户端的变化而变化。
动态页面:内容随着时间,随着不同的访问者出现不同的变化,有交互。
渲染
模板变量
——语法
——命名
***不能以下划线开头,不能有空格,不要数字开头,不能以python,django关键字开头
***变量的值可以是任何数据类型
变量解析规则
——1.计算变量,将其替换为结果
——2.遇到点(.)的时候,按以下顺序查找
——2.1字典键值查找
——2.2属性或方法查找
——2.3数字索引查找
——3.如果结果是可调用的,则调用它时不带参数,调用的结果成为模板的值
*****渲染失败返回‘ ‘
3模板过滤器 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 返回字符串或列表的长度
length_is 判断字符串或列表长度是否指定的值,相等返回Ture
lower 字符串中的字母都变小写{{ value|lower }}
upper 字符串中的字母都变大写{{ value|upper }}
safe 关闭变量的自动转义,使html标签生效{{ value|safe }}
title 标题化,首字母大写 {{ value|title }}
XSS跨域脚本攻击
用safe 关闭变量的自动转义,使html标签生效{{ value|safe }}
静态文件
——css
——js
——图片
1:路径配置:
项目根目录crm/crm——setting下:
STATIC_URL = ‘/static/‘
STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘static‘)]
项目根目录crm/static(文件夹)
css(文件夹)
img(文件夹)
js(文件夹)
2:静态文件的引入
2-1:硬编码,通过STATIC_URL
2-2:模板标签
原文:https://www.cnblogs.com/wdty/p/10403137.html