Flask_学习笔记_08: Flask中的过滤器
admin
2023-07-15 16:02:17
0

在很多blog的网站中,如果你注册之后,登录进去,都有一个头像,而且你会发现即使你没有设置自己的头像,也会有一个默认的头像出现。比如51cto blog,如果博主没有特别设置自己的头像,那么系统会默认显示下面的白熊头像:
Flask_学习笔记_08: Flask中的过滤器

如果设置了头像,那就会显示博主自定义的那个头像,像本人的就是自定义设置的,显示如下:
Flask_学习笔记_08: Flask中的过滤器
Flask_学习笔记_08: Flask中的过滤器

这个在Flask当中很好实现,用一个default的过滤器就搞定了:
.py代码如下:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello_world():

    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

在.py代码中,很简单,在返回render_template时,加上一个图片的参数和图片地址就OK。再来看看HTML中的代码,

HTML代码:




    
    Title


    


在HTML中,直接用img标签,src设置成.py中的变量,然后重点来了,直接用default过滤器+一个管道符号+括号赋值即可,格式如下:
var_name | default("image location")
是不是很简单?来看看效果,注意:.py代码中图片没有地址,是用的default过滤器中的地址,运行效果如下:
Flask_学习笔记_08: Flask中的过滤器

如果加上avatar这个变量参数,也就是说用户自定义了一个头像,那么前端页面要显示这个自定义头像的。.py代码里加上头像参数:

    return render_template('index.html', avatar='https://s5.51cto.com//wyfs02/M00/8E/4F/'
                                                'wKiom1i84UPQpMOWAAAyWIOlDIo072_middle.jpg')

实际效果如下:
Flask_学习笔记_08: Flask中的过滤器

这是default过滤器,下面我们再来看另外一个length过滤器,那什么时候会用到length过滤器呢?在一些有评论的网站中,每篇文章下面都会有评论数显示吧?这个时候,就是用length过滤器的最好场景。

假如现在.py中有3条评论,那这个评论应该有谁发表的评论:user,发表了什么样的评论:content评论内容。
.py代码如下:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello_world():
    comments = [
        {
            'user': 'uncleben',
            'content': '赞一个'
        },
        {
            'user': '张总',
            'content': '很好,加油'
        },
        {
            'user': '杨总',
            'content': '很好,加油'
        },
    ]
    return render_template('index.html',comments = comments, avatar = "https://s5.51cto.com//wyfs02/M00/8E/4F/"
                                                 "wKiom1i84UPQpMOWAAAyWIOlDIo072_middle.jpg")

if __name__ == '__main__':
    app.run(debug=True)

HTML中的代码:




    
    Title


    

评论数({{ comments|length }})

所以跟之前的代码相比,其实就多了一行:

评论数({{ comments | length }})


这个length过滤器其实就是对前面变量求长度,comments是一个list。

运行效果如下:
Flask_学习笔记_08: Flask中的过滤器
有点儿意思了吧!那下一步我们来实现显示评论者和评论内容,其实也很简单,用上一节学到的for循环,来遍历comments这个list,就可以喽!代码如下:




    
    Title


    

评论数({{ comments|length }})

其实就是在原来的基础上,加了一个

  • 标签,来格式化显示评论者,评论内容。实际效果如下:
    Flask_学习笔记_08: Flask中的过滤器

    好了,今天就到这里。今天学习了:

    • default过滤器,格式:var_name | default ( ' default value ')
    • length过滤器,格式:var_name | length

相关内容

热门资讯

特朗普:正致力于与伊朗达成协议... 特朗普在《纽约邮报》一档播客访谈节目中称,他正与伊朗磋商一项协议,伊朗已同意不再谋求拥有核武器。他表...
不接壤的日菲为何偷划海界? 日菲近日发表联合声明,宣称就“划定两国专属经济区和大陆架的海洋边界”启动正式谈判。两个隔海相望的国家...
凤凰晚报丨从钳工到老戏骨,魏宗... 今日人物【从钳工到老戏骨,魏宗万用一生诠释“戏比天大”】6月1日,表演艺术家魏宗万在上海逝世,享年8...
科威特称伊朗袭击致63人受伤 科威特卫生部门3日称,伊朗当天对科威特的袭击已造成63人受伤,相关部门已启动紧急应对预案,并在全国范...
日本标榜“和平国家”却行扩军备... 今年是东京审判开庭80周年,世界正回望历史、反思战争罪责、捍卫二战后来之不易的国际秩序之际,日本却迈...
浙江杨梅即将大规模上市,如何破... “我们现在的压力很大。”5月底,浙江余姚杨梅产区丈亭镇副镇长林宇站在一片杨梅林前对第一财经表示,当地...
致5死2伤!韩国就韩华航空航天... 【环球网报道 记者 姜蔼玲】据韩联社6月1日报道,针对位于韩国大田的韩华航空航天公司发生爆炸致7人伤...
黄河科技学院2026年招生简章 长按图片识别二维码或点击 “阅读原文” 查看电子招生简章。
医路起航,从“心” 开始!黄河... 6月1日上午,黄河科技学院附属医院2022级临床医学本科实习生入院岗前培训在大医讲堂顺利举办。院领导...
问题居然在实体卡槽上!美版iP... 6月2日消息,日前,又有博主提前把还没发布的iPhone 18 Pro电池参数给曝光了出来,根据爆料...