文章目录
1. 模板存放方式
1.1 方式1
1.1.1 配置
使用模板需要在Django setting.py里面进行配置:在TEMPLATES里面的DIRS设置路径拼接
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'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',
],
},
},
]
1.1.2 存放位置
在项目目录下创建一个templates文件夹,然后里面创建对应的app文件夹来存放每个app的模板。
1.2 方法2
1.2.1 配置
在Django setting.py里面INSTALLED_APPS注册app。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
1.2.2 存放位置
在每个app下面创建一个templates文件夹用来存放app自己的模板
方法1:正常情况下选择方法1,在项目目录下创建一个templates文件夹里面创建的app文件夹来存放对应的app的模板。
方法2:在app需要重复使用时,选择方法2,在每个app里面创建templates文件夹来存放对应的模板。
2. 模板变量
模板变量是用来连接前后端,是后台传递给前端的动态变量,用content={} 键值对来传递。
2.1 命名规则
- 只能以数字、下划线(_)和字母组成,不能包含空格和特殊字符
- 只能以下划线(_)和字母开头
2.2 模板变量的类型
- 数字 --> 前端直接拿去
- 字符串 -->前端直接拿取
- 字典 -->前端通过 字典变量名.key拿取值,也可以通过字典变量名.items拿到键
- 列表 -->前端通过列表变量名.index(索引值)拿取
- 函数 -->前端函数变量名拿到函数返回值
- 对象 -->前端对象变量.属性对象的属性
- 类 -->前端类变量.属性或者类变量名.方法名拿到类的属性和方法
2.3 使用方法
# 前端中通过双大括号包裹模板变量来获取值
{
{
变量名.方法 }}
3. 模板过滤器
3.1 常用的模板过滤器
add: --{
{
args|add:val)}} 给args加上相应的值,这里的val只能是数字类型或者数字字符串
addslashes --{
{
args|addslashes}} 给变量的引号加上斜线(转义符)
capfirst --{
{
args|capfirst}} 字符串首写字母大写
cut --{
{
args|cut:"要移除的对象"}} 从字符串中移除的字符
date --{
{
args|data:"Y-m-d"}} 将传来的字符串化 ***** 重点中的重点
default --{
{
args|default:""}} 如果args的值为False,就替换为传入值,否者保持原来的
default_if_none --{
{
args|default_if_none:""}} 如果值为None,就替换为值,否者保持原来的
safe --{
{
args|safe}} 传入的是html语句,加上这个词后会关闭原来的xss跨域攻击安全机制,让html语句渲染到界面上,(当系统设置autoescaping打开的时候,该过滤器使得输出不进行escape转换)
safeseq --{
{
value | safeseq}} 与safe基本相同,safeseq是针对多个字符串组成的sequence
{
% autoescape off %} 1 这三个是用的 跟safe的法一样
<h1>{
{
args}}<h1> 2
{
% endautoescape %} 3
dictsort --{
{
args|dictsort:"key"}} 对传入的字典按照关键字排序 [{
},{
}]
dictsortreversed --{
{
args|dictsortreversed<