A-3-1模板变量,过滤器和静态文件的引用(后续1)

 

模板路径查找顺序

(找到一个就返回)

1. DIRS(集中方便管理)

#tempaltes内新建一个app同名文件夹的原因是

分开不同app下的相同模板名 防止覆盖

def Mtry(request):

    return render(request,'video/video_text.html')

'video/video_text.html 一个模板地址

在导入模板前加app名的原因也是如此

 2. app目录下(分散方便分离)

模板变量

------------------------------------

1.静态页面

2.动态页面---只有动态页面会用到模板变量

renderrequest’xxx.html‘)  content  可以把参数(模板变量)传入html文件内

1. renderrequest’xxx.html‘,content={

'xx':xx

    }

使用时在html内  在{{  }}内写参数名       

2.当要导入列表和字典中的某一个值时 用xx.1 来表示列表中第2xx.name    .来表示调用

------------------------------------

变量的命名语法

不能关键字

不能下划线开头

不能数字开头

变量的解析规则

1.计算变量,将其替换为结果

2.遇到(.)的时候按以下顺序查找:

   字典键值对查找

   属性或方法查找

   数字索引查找

3.如果参数是一个可调用的(方法或函数)。则调用它时不带参数。需要带参数的函数的情况。则渲染失败,返回空白

def index(request):
    now =datetime.now()
    lt= [1,2,3,4,5,6]
    def func():
        return '这是一个函数'
    print(type(type(func)))     #类别为type
    return  render(request,'video/index.html',context={
        'now':now,
        'lt':lt,
        'func':func,              #不管加不加括号结果都是已经运行的
        'tfunc':type(func())     #html渲染失败 不支持 type的读取
    })

 

模板过滤器 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'

’‘(空字符)和None都会按解析失败处理

first 返回列表的第一个元素 {{ value|first }}

last 返回列表的最有一个元素 {{ value|last }}

slice 返回一个列表的切片 {{ some_list|slice:":2" }}

join 连接字符串列表 与str.joinlist)一样 {{ 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 }}

-- safe过滤器

  默认:变量不解释html代码   -- safe过滤器:变量解释代码

静态文件

html文件的修饰

  •  css
  •  js
  •  img

1.路径配置

STATIC_URL = '/static/'
STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]

2.静态文件的引入           

  1硬编码 通过 STATIC_URL

<head>
<link rel="stylesheet" href="/static/video/css/index.css">
</head>

  2.模板标签    相对路径 导入

{% load static %}
<head>
<link rel="stylesheet" href="{% static 'video/css/index.css' %}">
</head>

 

posted @ 2019-03-15 22:26  眨眼  阅读(149)  评论(0)    收藏  举报