博客网站(9)Templates过滤器

你的名字 2021-05-03 15:02 587阅读 0赞

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,发生错误。为了消除代码冗余又保证不发生错误,可以使用到过滤器:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>edit page</title>
  6. </head>
  7. <body>
  8. <form action="{% url 'blog:edit_action' %}" method="post">
  9. {% csrf_token %}
  10. <input type="hidden" name="article_id" value="{
  11. { article.id |default:'0'}}"> #article.id不存在时返回‘0’,实现了和之间if..else语句相同的功能
  12. <label>文章标题:<br/>
  13. <textarea name="title" cols="80" rows="2" >{
  14. { article.title }}</textarea>
  15. </label>
  16. <p></p>
  17. <label>文章内容:<br/>
  18. <textarea name="content" cols="80" rows="50" >{
  19. { article.content}}</textarea>
  20. </label>
  21. <p></p>
  22. <input type="submit" value="提交">
  23. </form>
  24. </body>
  25. </html>

发表评论

表情:
评论列表 (有 0 条评论,587人围观)

还没有评论,来说两句吧...

相关阅读

    相关 技术网站 &

    前言 网上技术多如牛毛,但是真正的技术人屈指可数。为此,收集些技术网站&博客,扩充自己的知识水平和范围。 -------------------- 工具类网站

    相关 网站模板分享

    这是我制作的一个博客网站模板,网站已经制作完成。 如果喜欢的可以看看,或者下载使用,下边是地址 [个人博客网站模板][Link 1]:[http://www.jufansh

    相关 网站(5)-Models

    Django中的Models是什么: 一个Model对应数据库中的一张数据表 Django中的Models以类的形式表现,它包含了一些基本字段以及数据的一些行为 Djan...

    相关 网站(6)- Admin

    简介: admin是django自带的功能强大的自动化数据管理界面 被授权的用户可以直接在Admin中管理数据库(增、删、查、改) Django提供了许多针对Adm...