Django框架——模板路径配置、模板变量及过滤器

目录

模板路径配置

过滤器

过滤器时间格式


模板变量及过滤器参见:Django框架——URL路由及模板渲染方式

模板路径配置

配置模板路径是通过配置文件setting.py中的TEMPLATES来设置。这是一个设置选项的列表,模板大都包含两项通用设置,有两种方式配置模板:

第一种::DIRS 定义一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件。将templates放在主项目目录下。

第二种: APP_DIRS告诉模板引擎是否应该进入每个已安装的应用中查找模板,值为True则模板会去安装了的app下面的templates文件夹查找模板。因此也可以在每个app的里面创建模板目录templates存放模板,这种方式需要将这个app添加到setting.py文件的INSTALLED_APPS列表中。

过滤器

  1. add:字符串相加、数字相加、列表相加、如果失败将返回一个空的字符串
  2. default:提供一个默认值,在这个值被django认为是False的时候使用,如空字符串。
  3. first:返回第一个值。
  4. last:返回最后一个值。
  5. date:格式化日期和时间。
  6. time:格式化时间。
  7. join:与python的join使用方法相同。
  8. length:返回对象的长度。
  9. length_is:对象的长度是否是指定的值,判断后返回一个布尔值。
  10. lower:将字符串小写。
  11. truncatechars:根据后面给出的参数截断字符串,如果超出就用...表示。
  12. truncatewords:同truncatechars,以一个单词为单位进行截断。
  13. capfirst:首字母大写。
  14. slice:切割列表,用法与python中的切片一样,区间是前闭后开。
  15. striptags:去掉所有的html标签。
  16. safe:关闭变量的自动转义。
  17. floatformat:浮点数的格式化。

过滤器时间格式

  • 四位年:Y,2021
  • 两位年:y,21
  • 两位月:m,01
  • 一位月:n,1
  • 两位日:d,05
  • 一位日:j,5
  • 十二小时制,两位时:h,09
  • 十二小时制,一位时:g,9
  • 二十四小时制,两位时:H,08
  • 二十四小时制,一位时:G,8
  • 分:i,00-59
  • 秒:s,00-59

注意:这里返回的当前时间都是使用标准零时区时间

#  views.py文件
def ren(request):
    st = 'THIS IS A FLOWER!'
    complexs = {
        'st':st,
        'p':'',
        'num1':5,
        'num2':3,
        'time_now':datetime.datetime.now,
    }
    return render(request,'red.html',context = complexs)

# urls.py文件
from django.urls import path,re_path
from . import views

urlpatterns = [
    path('index/',views.ren),
]
<!-- 模板文件  -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板渲染——过滤器</title>
    <style>
        p{
            font-size: 20px;
            color: #d70b35;
        }
    </style>
</head>
<body>
    <p>这是一个字符串:{{st}}</p>
    <p>求和:{{num1|add:num2}}</p>
    <p>设置默认值变量:{{p|default:'默认值变量999'}}</p>
    <p>设置默认值变量:{{p|default_if_none:'none'}}</p>
    <p>字母变小写:{{st|lower}}</p>
    <p>第一个元素:{{st|first}}</p>
    <p>最后一个元素:{{st|last}}</p>
    <p>默认日期格式:{{time_now|time}}</p>
    <p>默认时间格式:{{time_now|date}}</p>
    <p>日期时间格式化(24小时制,四位年,两位月日):{{time_now|date:'Y-m-d H-i-s'}}</p>
    <p>日期时间格式化(12小时制,两位年月日):{{time_now|date:'y-n-j h-i-s'}}</p>
    <p>时间格式化:{{time_now|time:'H-i-s'}}</p>
    <p>求字符串长度:{{st|length}}</p>
    <p>判断长度是否符合某个长度,返回一个布尔值:{{st}}的长度为{{st|length}},判断结果为{{st|length_is:10}}</p>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值