博客网站(9)Templates过滤器

Templates过滤器 属于django模板语言,用于修改模板中的变量,从而显示不同内容 ,格式为  {{ value | filter }}

常用操作:

{{ name | lower }}  :转换文本为小写
{{ bio | truncatewords:"30" }}  :显示bio的前30个字
{{ "abcd"|capfirst }} :  第一个字母大写
{{ pub_date | date:"F j, Y" }} :格式化
{{ list|first }} :  返回列表第一个元素
{{ list|length }}  : 返回列表个数
{{ list|random }}  : 返回列表的随机一项

过滤管道可以被 套接,即一个过滤器管道的输出又可以作为下一个管道的输入,如:
{{list|first|upper}} : 实现查找列表的第一项并将其转化为大写

应用在之前的博客项目中:
之前的edit_page.html页面中,使用了if..else语句来判断是写新文章还是修改文章,代码过于冗余。
django模板如果出现了不存在的变量,不会报错,只会给出空值。所以如果不这样写,前端会将返回空的article.id,发生错误。为了消除代码冗余又保证不发生错误,可以使用到过滤器:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>edit page</title>
</head>
<body>
<form action="{% url 'blog:edit_action' %}" method="post">   
    {% csrf_token %}      
    <input type="hidden" name="article_id" value="{{ article.id |default:'0'}}">  #article.id不存在时返回‘0’,实现了和之间if..else语句相同的功能
    <label>文章标题:<br/>
        <textarea name="title" cols="80" rows="2" >{{ article.title }}</textarea>   
    </label>
    <p></p>
    <label>文章内容:<br/>
        <textarea name="content" cols="80" rows="50" >{{ article.content}}</textarea>
    </label>
    <p></p>
    <input type="submit" value="提交">  
</form>
</body>
</html>






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值