会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132384个问题


这个是一个简单的捕获网页渲染完毕的耗时统计
 并且写入到了加入了日志  用于测试
'''


#引入我们的template_rendered这变量 待会儿用于监听信号
from flask import Flask,template_rendered,render_template,before_render_template,g
import time

app=Flask(__name__)

@app.route('/')   #定义一个首页路由
def index():
    return render_template('index.html')  #在这个路由里面 我放入了一些视频和图片 地址都是网络地址

@app.route('/home/')
def home():
    return render_template('home.html')  ##在这个路由里面 我放入了很多图片 地址也都是网络地址


#在页面渲染之前的钩子函数  记录开始的时间
def start_msg(sender,template,context):
    start_time = time.time()
    print(start_time,111111)
    #保存到我们的g变量中
    g.stime=start_time
before_render_template.connect(start_msg)    

#在页面渲染完毕的钩子函数  记录页面渲染完毕的时间  
# 拿到不同高度时间 然后写入日志 
def page_loading_log(sender,template,context):
    end_time = time.time()
    print(end_time,222222)
    print(f'{end_time-g.stime}',template,':这是页面渲染的时间')
    #当我们进入home的时候 这里打印的:
     #0.0010037422180175781<Template 'home.html'> :这是页面渲染的时间
     #当我们进入/这里打印的:
    #0.001003742218017578 <Template 'index.html'> :这是页面渲染的时间
    #由此可以拿到了进入不同页面 返回的不同的渲染时间 
    # 然后我们就可以写入log日志了 
template_rendered.connect(page_loading_log)
 
if __name__=='__main__':
    app.run(debug=True)

总结

#template_rendered 这个是视图渲染之后 发送的信号 
#我的理解是相当于 vue中的 mounted生命周期函数  DOM视图渲染完毕之后
#这个在vue中最常用。可以说是最核心的生命周期函数 在学习vue项目的时候
 这玩意天天用 几乎达到了离不开它的地步
 
'''
因为 DOM树 也就是元素标签 必须在视图渲染之后我们才能拿到
所以我们这个函数里面使用的逻辑 通常都是对DOM树的操作 
而flask并不能直接操作DOM树  相对比用vue操作dom树 或者js直接操作
 更加的便捷


我想了半天 这玩意在flask中可以干嘛?
终于让我想到了:
可以帮我们检测性能?比如网页渲染完毕的耗时?

之后的学习 应该还能找到这个钩子函数更多的用途把

Python 全系列/第八阶段:轻量级Web开发利器-Flask框架/Flask高级 8026楼
JAVA 全系列/第一阶段:JAVA 快速入门/JAVA入门和背景知识 8027楼
Python 全系列/第一阶段:Python入门/编程基本概念 8029楼
JAVA 全系列/第十三阶段:分布式文件存储与数据缓存/Nginx 8030楼
JAVA 全系列/第八阶段:Linux入门到实战/Linux(旧) 8031楼
Python 全系列/第二阶段:Python 深入与提高/坦克大战 8035楼
JAVA 全系列/第九阶段:权限控制与安全认证/Shiro(旧) 8036楼
JAVA 全系列/(旧的隐藏)第十一阶段:spring全家桶(Spring Boot)/Spring Boot 8037楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 8038楼
Python 全系列/第十二阶段:Django在线教育平台/Django项目 8040楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637