1.模板路径的查找
- 查找顺序,
- 会首先查找TEMPLATES里面的DIRS
TEMPLATES = [
{
‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
‘DIRS‘: [os.path.join(BASE_DIR,‘templets‘)],
‘APP_DIRS‘: True,
‘OPTIONS‘: {
‘context_processors‘: [
‘django.template.context_processors.debug‘,
‘django.template.context_processors.request‘,
‘django.contrib.auth.context_processors.auth‘,
‘django.contrib.messages.context_processors.messages‘,
],
},
},
]
- 然后如果APP_DIRS为TRUE时,会去查找 INSTALLED_APPS, 这两种方案,以为第一种方案为准。
INSTALLED_APPS = [
‘
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
]
尝试,在app目录下存放模板
- 两种方案
- 为什么要在tempaltes里面再套一层
** 只要找到一个符合的模板,就返回
2.模板变量
- 静态页面,内容不会发送变化
- 动态页面 内容是动态的,与服务器进行交互。会随时间变化而变化。
动态页面可以通过render 方法渲染
- 模板变量
- 语法
*** 不能以下划线开头
**变量的值可以是任何数据类型
-变量的解析规则
各种尝试
1.计算变量,将其替换为结果
```
from django.shortcuts import render,redirect,reverse
from django.template.loader import get_template
from datetime import datetime
Create your views here.
from django.http import HttpResponse
def index(request):
now =datetime.now()
# tp = get_template(‘index.html‘)
# html = tp.render()
return render(request,‘index.html‘,context={
‘now‘:now
})
```
2.遇到点(.)的时候,按一下顺序查找:
-1.字典键值查找
-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 判断字符串或列表长度是否指定的值,相等返回True {{ value|length_is:"4" }}
lower 字符串中的字母都变小写{{ value|lower }}
upper 字符串中的字母都变大写{{ value|upper }}
safe 关闭变量的自动转义,使html标签生效{{ value|safe }}
title 标题化,首字母大写 {{ value|title }}
-xss(跨域脚本攻击)
4.静态文件
-css
-js
-图片
-1. 路径配置
- STATICFILES_DIRS
- STATIC_URL
-2. 静态文件的引入
-1. 硬编码 通过 STATIC_URL
-2. 模板标签
实习机会,私聊,电话面试 时间
原文地址:https://www.cnblogs.com/donghao1121/p/10398365.html
时间: 2024-10-28 03:28:56