Django框架学习(二)

模板变量及过滤器

模板路径的总结

在配置文件 setting.py 中找到 TEMPLATES 设置来配置。这是一个设置选项的列表,模板大都包含两项通用设置;两种方式配置模板:
第一种:DIRS 定义一个目录列表,吗,模板引擎按列表顺序搜索这些目录以查找模板源文件。将 templates 放在主项目目录下;
第二种:APP_DIRS 告诉模板引擎是否应该进入每个已安装的应用中查找模板,值为 True 则模板会去安装了的APP 下面的 templates 文件夹查找模板。所以我们也可以在每个 app 的里面创建模板目录 templates 存放模板,这种方式需要将这个 app 添加到 setting.py 文件的 INSTALLED_APPS 列表中

在这里插入图片描述

模板变量

我们经常在页面会上看到,谁登陆的就会显示谁的信息,那么这个页面上的显示的信息是怎么实现的呢? 其实就是你登录之后,后台传送数据到前端的模板 ,由模板去进行展示。
在这里插入图片描述
举个例子,在 一个 book app 的 views.py 中 定义一个 视图函数,并配置对应的路由。视图函数渲染 book_index.html 这个页面,并向页面传递数据 一个字典 (contex 传递上下文)
在这里插入图片描述
在这里插入图片描述
通过后台传送的数据,我们可以让其显示到我们的模板中
在这里插入图片描述
然后去访问这个页面,我们可以得到我们想展示的数据
在这里插入图片描述
通过这个例子我们知道了模板变量的作用,就是后端传送的数据,前端可以去进行使用

模板变量的使用规则

既然知道了模板变量的作用,那我们就来了解一下模板变量的使用规则

  • 语法:{{ 变量名 }}
  • 命名由字母和数值以及下划线组成,不能有空格和标点符号
  • 可以使用字典、模型、方法、函数、列表
  • 不要和 python 和 Django 关键字重名

注意:如果 data 是一个字典,那么访问 data.items 将会访问 data 这个字典的 key 名为 items 的值,而不会访问字典的 items 方法;点在模板渲染时有特殊的含义。变量名中点代表查找。

模板变量的例子

首先在 views.py 中定义 一个函数、类、字典、列表、元祖、字符串
在这里插入图片描述
然后定义一个 index5 的视图函数,并将上面定义对象通过 context 传递到模板中
在这里插入图片描述
模板使用后台传送的数据
在这里插入图片描述

访问页面,显示结果

在这里插入图片描述

模板过滤器

模板过滤器就是变量进行过滤,在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换掉原来的变量展示出来。

语法:{{ st | lower }}

管道符进行链式调用,比如实现一个功能,先把所有字符变成小写,把第一个字符转化成大写。
语法:{{st|lower|capfirst}}

使用参数:过滤器可以使用参数,在过滤器名称后面使用冒号 :再加上参数,比如要把一个字符串中所有的空格去掉,则可以使用cut过滤器,
语法:{{ st | cut:" "}}

注意:使用参数的时候,冒号和参数之间不能有任何空格,一定要紧挨着。

常用的模板过滤器

在这里插入图片描述

date 和 time 过滤器格式

在这里插入图片描述
在这里插入图片描述

关于自动转义

自动转义时将变量的一些特殊字符,比如左箭头(<),右箭头(>)转移成 html 代码,这样做的目的是为了处理一些不安全的变量。

  • < :转义成 &lt;
  • > :转义成 &gt;
  • :转义成 &#39;
  • :转义成 &quot;
  • & :转义成 &amp;

后台向前端传递数据时,会将变量的一些特殊字符转移成 html 代码,虽在页面可正常显示,但查看网页源代码时就变成 html 代码 可以 用 过滤器 safe 关闭变量的自动转义

静态文件

Django 静态文件的存放,可以在项目目录下创建 static 目录,为了区分开各种类型的文件分别创建 css,image,js 的目录。
在这里插入图片描述
创建好后,需在 setting.py 文件中添加 STATICFILES_DIRS 设置静态文件目录路径,同 templates。

在这里插入图片描述
创建文件 /static/js/myjs.js
在这里插入图片描述
创建文件 /static/css/mystyle.css
在这里插入图片描述
创建文件 /static/image/myimage.jpg
在这里插入图片描述
在这里插入图片描述

静态文件引用

先加载静态文件,在引用对应的静态文件。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值