模板变量,过滤器和静态文件引用

模板路径查找机制

django首先会去 settins.py 的TEMPLATES里找模板变量,过滤器和静态文件引用_第1张图片
不要在模板根目录下直接创建模板在这里插入图片描述
而是要在外面多套一个文件夹,文件夹名为aap名方便处理
在这里插入图片描述
另一种查找方法:在app里面创建templates文件夹
模板变量,过滤器和静态文件引用_第2张图片
首先在DIRS里找模板变量,过滤器和静态文件引用_第3张图片
如果没找到 ,APP_DIRS显示问True的话在这里插入图片描述
就会到INSTALLED_APPS里面注册了的app里面去找模板变量,过滤器和静态文件引用_第4张图片

动态文件和静态文件

动态页面:随着不同的时间,不同的用户,不同的因素会发生动态的改变。(动态的获取内容)

静态页面:页面里面的数据是不变化的,无需经过服务器的编译,直接加载到客户浏览器上显示出来。

写一个动态页面

模板变量,过滤器和静态文件引用_第5张图片
用两个大括号包住这个变量,这个变量对应的是context 里的 key
在这里插入图片描述
模板变量,过滤器和静态文件引用_第6张图片
设置时区
TIME_ZONE 里将时区设置为 Asia/Shanghai
模板变量,过滤器和静态文件引用_第7张图片模板变量,过滤器和静态文件引用_第8张图片

模板变量

语法: {{ 变量名 }}

命名规则:由字母,数字以及下划线组成,不能以下划线开头,也不能以数字开头,不能有空格和标点符号,不要使用 pythondjango 的关键字。

模板变量,过滤器和静态文件引用_第9张图片
模板变量,过滤器和静态文件引用_第10张图片模板变量,过滤器和静态文件引用_第11张图片

定义一个函数,将函数传入模板变量,函数会被执行,不可以带参数。

模板变量,过滤器和静态文件引用_第12张图片
模板变量,过滤器和静态文件引用_第13张图片模板变量,过滤器和静态文件引用_第14张图片模板变量,过滤器和静态文件引用_第15张图片模板变量,过滤器和静态文件引用_第16张图片
变量解析规则

  • 当模板引擎遇到了变量时,他会计算变量,并将其替换为结果。模板变量,过滤器和静态文件引用_第17张图片模板变量,过滤器和静态文件引用_第18张图片
  • 当模板引擎在变量中遇到了( .)时,他会按照以下顺序尝试查找:
    1.字典键值查找
    2.属性和方法查找
    3.数字索引查找
    例如:
    在这里插入图片描述
    它返回的是一个items的列表
    在这里插入图片描述
    然后我们在字典里加一个名为items的键时,首先会按照键去查找在这里插入图片描述
    结果变成了book
    在这里插入图片描述
  • 如果结果是一个可调用的(callabled),则调用它,结果为模板变量的值。
    • 注:加上两个括号就可以执行的就叫可调用的。它里面有一个 __call__ 方法
      模板变量,过滤器和静态文件引用_第19张图片

过滤器

语法:{{ 变量名|过滤器:参数}}
在这里插入图片描述模板变量,过滤器和静态文件引用_第20张图片
模板变量,过滤器和静态文件引用_第21张图片
模板变量,过滤器和静态文件引用_第22张图片模板变量,过滤器和静态文件引用_第23张图片模板变量,过滤器和静态文件引用_第24张图片

静态文件

路径设置

新建一个名为 static 的文件夹模板变量,过滤器和静态文件引用_第25张图片

# 在 settings.py 文件夹下添加
1.STATIC_URL= '/static/'

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

模板变量,过滤器和静态文件引用_第26张图片
确保django.contrib.staticfiles 这个app 被包含在了 INSTALL_APPS
模板变量,过滤器和静态文件引用_第27张图片
静态文件引用

{% load static %}   # 写在模板头

模板变量,过滤器和静态文件引用_第28张图片
导入文件格式:{% static ’文件路径 ’ %}‘模板变量,过滤器和静态文件引用_第29张图片
模板变量,过滤器和静态文件引用_第30张图片模板变量,过滤器和静态文件引用_第31张图片

你可能感兴趣的:(django框架学习)